多选题 在如下的授权语句中,哪4个是将系统权限授予girldog?
A.GRANT CREATE TABLE TO girldog;
B.GRANT CREATE INDEX TO girldog;
C.GRANT CREATE SESSION TO girldog;
D.GRANT CREATE PROCEDURE TO girldog;
E.GRANT UPDATE ANY TABLE TO girldog;
F.GRANT ALL ON girldog.baby_view TO boydog WITH GRANT OPTION;

【正确答案】 A、C、D、E
【答案解析】[解析] 这一题还是测试对权限的分类以及系统权限的理解程度。根据有关系统权限的介绍——“并没有CREATE INDEX权限,因为索引是基于表的,所以CREATE TABLE系统权限隐含了创建索引的权限”,可以断定选项B是错误的。
根据有关对象权限的授权的介绍,可知ALL、ON对象名,以及WITHGRANT OPTION子句都是在授予或回收对象权限时使用的,所以可以断定选项F是错误的。利用排除法,只有选项A、C、D和E是正确的。
其实,为了确定Oracle数据库中并没有CREATE INDEX权限,同样可以通过查询数据字典DBA SYS PRIVS来获得答案,为此应该以SYS用户登录数据库并在SQL*Plus中使用如下的查询语句:
SQL>select * from
2 DBA_SYS_PRIVS
3 WHERE PRIVILEGE LIKE 'CREATE%INDEX'
4 AND GRANTEE='SYS'
5 ORDER BY PRIVILEGE;
GRANTEE RIVILEGE ADM
----------- -------------------- ------
SYS CREATE ANY INDEX NO
以上查询语句的显示结果表示确实没有CREATE INDEX这个系统权限,现在应该放心了吧!