多选题
superdog数据库的初始化参数remote_login_passwordfile被设置为了EXCLUSIVE,如要确定被授予了SYSDBA或SYSOPER权限的用户,应该查询哪一个数据字典?
A.V$DATABASE
B.V$INSTANCE
C.V$PARAMETER
D.V$PWFILE_USERS
【正确答案】
D
【答案解析】[解析] 这一题是测试对超级系统权限SYSDBA或SYSOPER的管理与维护的熟悉程度。实际上,在教材中并未直接讲述过这方面的内容,但是利用学习过的内容,还是不难获取正确的答案的。
当一个数据库的初始化参数remote_login_passwordfile设置成EXCLUSIVE时,就表示这个数据库是使用口令文件来验证数据库管理员和数据库操作员的。为了查看初始化参数remote_login_passwordfile的设置,应该以SYS用户登录数据库并在SQL*Plus中使用如下的SQL*Plus命令:
SQL>show parameter remote_login;
NAME TYPE VALUE
---------------------------- ------------- ------------
remote_login_passwordfile string EXCLUSIVE
根据题目的要求,可以猜想数据字典的名字应该与Password和User有关,而在所有的选项中只有V$PWFILE_USERS满足这一要求,所以可以确定选项D是正确的。为此,可以以SYS用户登录数据库并在SQL*Plus中使用如下的查询语句:
SQL>select * from V$PWFILE_USERS;
USERNAME SYSDB SYSOP
---------------- ------ -------
SYS TRUE TRUE
从以上查询语句的显示结果可以看出V$PWFILE_USERS就是所需要的数据字典,所以可以确定选项D是正确的。
为了进一步理解SYSDBA和SYSOPER这两个超级系统权限以及相关的操作,可以通过使用以下的授权语句分别将sysdba超级系统权限授予scott用户和sysoper超级系统权限授予hr用户:
SQL>grant sysdba to scott;
授权成功
SQL>grant sysoper to hr;
授权成功
之后,可以重新查询数据字典V$PWFILE_USERS中的内容,以对比授权前后所存信息的变化。
SQL>select * from V$PWFILE_USERS;
USERNAME SYSDB SYSOP
----------------- ------- --------
SYS TRUE TRUE
SCOTT TRUE FALSE
HR FALSE TRUE
接下来,可以通过使用以下的回收语句分别将sysdba超级系统权限从scott用户收回,将sysoper超级系统权限从hr用户收回:
SQL>revoke sysdba from scott;
撤销成功
SQL>revoke sysoper from hr;
撤销成功
最后,可以再次重新查询数据字典V$PWFILE_USERS中的内容以对比回收前后所存信息的变化。
SQL>select * from V$PWFILE_USERS;
USERNAME SYSDB SYSOP
-------------- ------- -------
SYS TRUE TRUE