Oracle 授权 ORA-00990: 权限缺失或无效
创建一个用户:
create user xxx identified by yyy
?当密码里面有特殊字符时? windows平台下面应该用 "yyy"? 其它平台未测试
刚创建好的用户是没有任何权限的? 连登录数据库的权限都没有
这时,就要给用户授予权限:
ORACLE里面的权限有系统权限和对象权限两种
可以通过
select distinct p.privilege from user_sys_privs p order by p.privilege asc;?
?
?来查询ORACLE里面的所有系统权限;
常用的系统权限有 :
????? ? ? ? ? ? ? ? CREATE SESSION???????????????????? 创建会话 登录数据库
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_name from 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下面的说明