数据库

 首页 > 数据库 > MySql > Oracle用户的创建和删除

Oracle用户的创建和删除

分享到:
【字体:
导读:
         摘要:1. 创建用户:SQL> create user user01 identified by user01;User created.但登录提示01045的错误,缺少CREATE SESSION权限。ERROR:ORA-01045: user USER01 lacks CREATE SESSION privileg...

Oracle用户的创建和删除

1. 创建用户

SQL> create user user01 identified by user01;

User created.


但登录提示01045的错误,缺少CREATE SESSION权限。

ERROR:
ORA-01045: user USER01 lacks CREATE SESSION privilege; logon denied
Enter 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)),就可以创建表了。


2. 需要为用户授予connect和resource权限

SQL> grant connect, resource to user01;

Grant succeeded.

下面来说说为什么需要connect和resource权限,

关于connect和resource的权限可参见之前的博客文章:http://blog.itpub.net/7192724/viewspace-1184490/

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

SQL> select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;

GRANTEE                              PRIVILEGE

------------------------------ ----------------------------------------
RESOURCE                            CREATE CLUSTER
RESOURCE                            CREATE INDEXTYPE
RESOURCE                            CREATE OPERATOR
RESOURCE                            CREATE PROCEDURE
RESOURCE                            CREATE SEQUENCE
RESOURCE                            CREATE TABLE
RESOURCE                            CREATE TRIGGER
RESOURCE                            CREATE TYPE
8 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权限。


3. 删除用户

SQL> drop user user01;
drop user user01
*
ERROR at line 1:
ORA-01922: CASCADE must be specified to drop 'USER01'

报错说明该用户下有创建的其他对象,如果删除用户,有两种方法:

1. 删除用户下的对象:

登录user01后执行:

SQL> drop table tbl_seg;

Table dropped.

再次登录SYS执行:

SQL> drop user user01;

User dropped.

2. 使用CASCADE级联删除:

drop user user01 cascade;

Oracle用户的创建和删除
分享到:
mysql5.6.16下跟踪SQL查询转换的结果
mysql5.6.16下跟踪SQL查询转换的结果    当SQL执行时,会做一些查询转换,你看到的SQL很可能被转换为其他的形式的SQL执行(有视图重写,查询转换,谓词推进等)。在Oracle下,可以通过10053跟踪SQL语句。在mysql下,可以通过设置optimizer_trace来实现。 mysql> select version(); +-----------+ | version() | +--------...
负载均衡(LB)详解二、LB
负载均衡(LB)详解二、LB LoadBalance就是把负载均衡分配到集群的各个节点,从而提高整体的吞吐能力。Oracle 10g RAC提供了两种手段来实现负载,其一是通过Connection Balancing,按照某种算法把用户分配到不同的节点;其二是通过service,在应用层面上进行分散。   Connection Balancing Connection Balancing这种负载均...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……