ORACLE循序渐进讲解(第四讲)(二)

2015-02-03 04:32:56 · 作者: · 浏览: 58
PE 0 PRIVILEGE NAME PROPERTY ---------- ---------------------------------------- ---------- -181 CREATE ANY TYPE 0 -182 ALTER ANY TYPE 0 -183 DROP ANY TYPE 0 -184 EXECUTE ANY TYPE 0 -186 UNDER ANY TYPE 0 -188 CREATE LIBRARY 0 -189 CREATE ANY LIBRARY 0 -190 ALTER ANY LIBRARY 0 -191 DROP ANY LIBRARY 0 -192 EXECUTE ANY LIBRARY 0 -200 CREATE OPERATOR 0 -201 CREATE ANY OPERATOR 0 -202 ALTER ANY OPERATOR 0 -203 DROP ANY OPERATOR 0 -204 EXECUTE ANY OPERATOR 0 -205 CREATE INDEXTYPE 0 -206 CREATE ANY INDEXTYPE 0 -207 ALTER ANY INDEXTYPE 0 -208 DROP ANY INDEXTYPE 0 -209 UNDER ANY VIEW 0 -210 QUERY REWRITE 0 PRIVILEGE NAME PROPERTY ---------- ---------------------------------------- ---------- -211 GLOBAL QUERY REWRITE 0 -212 EXECUTE ANY INDEXTYPE 0 -213 UNDER ANY TABLE 0 -214 CREATE DIMENSION 0 -215 CREATE ANY DIMENSION 0 -216 ALTER ANY DIMENSION 0 -217 DROP ANY DIMENSION 0 -218 MANAGE ANY QUEUE 1 -219 ENQUEUE ANY QUEUE 1 -220 DEQUEUE ANY QUEUE 1 -222 CREATE ANY CONTEXT 0 -223 DROP ANY CONTEXT 0 -224 CREATE ANY OUTLINE 0 -225 ALTER ANY OUTLINE 0 -226 DROP ANY OUTLINE 0 -227 ADMINISTER RESOURCE MANAGER 1 -228 ADMINISTER DATABASE TRIGGER 0 -233 MERGE ANY VIEW 0 -234 ON COMMIT REFRESH 0 -235 EXEMPT ACCESS POLICY 0 -236 RESUMABLE 0 PRIVILEGE NAME PROPERTY ---------- ---------------------------------------- ---------- -237 SELECT ANY DICTIONARY 0 -238 DEBUG CONNECT SESSION 0 -241 DEBUG ANY PROCEDURE 0 -243 FLASHBACK ANY TABLE 0 -244 GRANT ANY OBJECT PRIVILEGE 0 -245 CREATE eva lUATION CONTEXT 1 -246 CREATE ANY eva lUATION CONTEXT 1 -247 ALTER ANY eva lUATION CONTEXT 1 -248 DROP ANY eva lUATION CONTEXT 1 -249 EXECUTE ANY eva lUATION CONTEXT 1 -250 CREATE RULE SET 1 -251 CREATE ANY RULE SET 1 -252 ALTER ANY RULE SET 1 -253 DROP ANY RULE SET 1 -254 EXECUTE ANY RULE SET 1 -255 EXPORT FULL DATABASE 0 -256 IMPORT FULL DATABASE 0 -257 CREATE RULE 1 -258 CREATE ANY RULE 1 -259 ALTER ANY RULE 1 -260 DROP ANY RULE 1 PRIVILEGE NAME PROPERTY ---------- ---------------------------------------- ---------- -261 EXECUTE ANY RULE 1 -262 ANALYZE ANY DICTIONARY 0 -263 ADVISOR 0 -264 CREATE JOB 0 -265 CREATE ANY JOB 0 -266 EXECUTE ANY PROGRAM 0 -267 EXECUTE ANY CLASS 0 -268 MANAGE SCHEDULER 0 -269 SELECT ANY TRANSACTION 0 -270 DROP ANY SQL PROFILE 0 -271 ALTER ANY SQL PROFILE 0 -272 ADMINISTER SQL TUNING SET 0 -273 ADMINISTER ANY SQL TUNING SET 0 -274 CREATE ANY SQL PROFILE 0 -275 EXEMPT IDENTITY POLICY 0 -276 MANAGE FILE GROUP 1 -277 MANAGE ANY FILE GROUP 1 -278 READ ANY FILE GROUP 1 -279 CHANGE NOTIFICATION 0 -280 CREATE EXTERNAL JOB 0 166 rows selected
system_privilege_map是查询所有系统权限,总共有166个系统权限,但没有sysdba和sysoper。V$PWFILE_USERS是查询所有拥有sysdba和sysoper权限的用户,系统默认只有sys有sysdba和sysoper权限。结合可以看出sysdba和sysoper数据库管理的特殊权限是不存在数据库中的,接下来再看看sysdba和sysoper权限的区别(网上有很多我只粘来一张图片)。 \
总上所说system没有sysdba和sysoper权限所以system就不能创建数据库启动关闭等操作,DBA的所有操作都必须在数据库打开的情况下,sys登录必须用sysdba或sysoper身份登录。

2、oracle数据库非Dba角色用户使用as sysdba仍然可以连接相关问题

\

从黑屏的结果上看无论怎么写只要as sysdba都能登录成功并且都是成sys用户,这就奇怪了,oracle是怎样去管理的? 其实oracle登录的时候有三种登录验证机制(1)操作系统验证(2)密码文件验证(3)数据库验证
一般权限用户的登录验证都是第三种方式,即数据库验证,因为用户名和密码都是存储在数据库当中的。然而,SYS用户(具有SYSDBA和SYSOPER权限的用户)却不是数据库验证。在oracle数据没有启动的时候,SYS用户就可以连接到数据库,并对其进行启动等操作,所以不可能是数据库验证。SYS用户采用的是第一种和第二种验证方式。这个就清楚了,下面有两种方法解决。 (1)找到oracle的安装目录NETWORK下ADMIN目录下的sqlnet.ora文件将SQLNET.AUTHENTI