本文共 1897 字,大约阅读时间需要 6 分钟。
SQL> create user user01 identified by user01;User created.
但登录提示01045的错误,缺少CREATE SESSION权限。
ERROR:
ORA-01045: user USER01 lacks CREATE SESSION privilege; logon deniedEnter user-name:此时需要赋予connect权限给用户(原因见(2)),登陆后创建表提示01031错误:
SQL> create table t(x number);create table t(x number)*ERROR at line 1:ORA-01031: insufficient privileges
再次赋予resource权限给用户(原因见(2)),就可以创建表了。
SQL> grant connect, resource to user01;
Grant succeeded.
下面来说说为什么需要connect和resource权限,
关于connect和resource的权限可参见之前的博客文章:
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
SQL> select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;GRANTEE PRIVILEGE------------------------------ ----------------------------------------RESOURCE CREATE CLUSTERRESOURCE CREATE INDEXTYPERESOURCE CREATE OPERATORRESOURCE CREATE PROCEDURERESOURCE CREATE SEQUENCERESOURCE CREATE TABLERESOURCE CREATE TRIGGERRESOURCE CREATE TYPE8 rows selected.SQL> select grantee,privilege from dba_sys_privs where grantee='CONNECT' order by privilege;GRANTEE PRIVILEGE------------------------------ ----------------------------------------CONNECT CREATE SESSION
因此具有connect的用户就有sqlplus创建SESSION的权限,至于创建表就靠resource权限。
SQL> drop user user01;drop user user01*ERROR at line 1:ORA-01922: CASCADE must be specified to drop 'USER01'
报错说明该用户下有创建的其他对象,如果删除用户,有两种方法:
登录user01后执行:
SQL> drop table tbl_seg;Table dropped.
再次登录SYS执行:
SQL> drop user user01;User dropped.
drop user user01 cascade;
本文转自ICT时空 dbasdk博客,原文链接:,如需转载请自行联系原博主。