SQL> select * from v$version;
BANNER
-----------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> CREATE ROLE mgr;
角色已创建。
SQL> GRANT CREATE TABLE, SELECT ON oe.orders TO mgr;
GRANT CREATE TABLE, SELECT ON oe.orders TO mgr
*
第 1 行出现错误:
ORA-00990: 权限缺失或无效
-- create table 属于系统权限,SELECT ON oe.orders TO mgr 属于角色权限;
两者不能放在一个grant语句中,分开单独授权就可以了。
SQL> GRANT create table TO mgr;
授权成功。
SQL> GRANT SELECT ON oe.orders TO mgr;
授权成功。
--而角色权限,和对象权限可以放在同一个grant语句中
SQL> GRANT mgr, create table TO SCOTT;
授权成功。