3w1h 发表于 2013-1-29 15:28:44

Oracle 授权 ORA-00990: 权限缺失或无效

创建一个用户:
create user xxx identified by yyy 当密码里面有特殊字符时  windows平台下面应该用 "yyy"  其它平台未测试
刚创建好的用户是没有任何权限的  连登录数据库的权限都没有
这时,就要给用户授予权限:
ORACLE里面的权限有系统权限和对象权限两种
可以通过
select distinct p.privilegefrom user_sys_privs p order by p.privilege asc;  
 来查询ORACLE里面的所有系统权限;
常用的系统权限有 :
                    CREATE SESSION                     创建会话 登录数据库
       CREATE SEQUENCE                    创建序列
       CREATE SYNONYM                     创建同名对象
       CREATE TABLE                       在用户模式中创建表
       CREATE ANY TABLE                   在任何模式中创建表
       DROP ANY TABLE                     在任何模式中删除表
       CREATE PROCEDURE                   创建存储过程
       EXECUTE ANY PROCEDURE              执行任何模式的存储过程
       CREATE USER                        创建用户
       DROP USER                          删除用户
       CREATE VIEW                        创建视图
通过下面的SQL可以查询所有的对象权限:
select distinct t.privilege from user_tab_privs t; 结果如下:
              FLASHBACK
              EXECUTE
              ON COMMIT REFRESH
              ALTER
              DEQUEUE
              UPDATE
              DELETE
              DEBUG
              UNDER
              QUERY REWRITE
              SELECT
              READ
              INSERT
               INDEX
               WRITE
               REFERENCES
               MERGE VIEW
另外还有角色授权  可以通过下面的SQL来查询ORALCE里面内置有哪些角色:
select distinct r.granted_role role_namefrom user_role_privs r where r.default_role = 'YES' order by role_name asc; 授权语句:grant 权限
系统授权直接写:grant 权限名称to用户名;对象权限则要写成:grant 权限名称on schema. 对象名 to 用户名  还要注意一点是:授予权的时候系统权限和对象权限不能同时写,也就是说不能写成下面这个样子:
 
GRANT CREATE TABLE, SELECT ON scott.test TO scott1 这样写会报   ORA-00990: 权限缺失或无效
但是系统权限和角色是可以同时写在一起授予给某一个用户的

 
再具体的内容请参阅附件文档里面grant下面的说明
页: [1]
查看完整版本: Oracle 授权 ORA-00990: 权限缺失或无效