oracle数据库中创建用户

来源:互联网 发布:sun java认证 编辑:程序博客网 时间:2024/05/18 02:31

oracle数据库中创建用户

创建用户

oracle中创建用户语法如下:

         CREATE USER username IDENTIFIED BY password
         OR IDENTIFIED EXETERNALLY
         OR IDENTIFIED GLOBALLY AS ‘CN=user’
         [DEFAULT TABLESPACE tablespace]
         [TEMPORARY TABLESPACE temptablespace]
         [QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
         [,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
         [PROFILES profile_name]
         [PASSWORD EXPIRE]
         [ACCOUNT LOCK or ACCOUNT UNLOCK]

其中
    CREATE USER username:用户名,一般为字母数字型和“#”及“_”符号。
    IDENTIFIED BY password:用户口令,一般为字母数字型和“#”及“_”符号。
    IDENTIFIED EXETERNALLY:表示用户名在操作系统下验证,该用户名必须与操作系统中所定义的用户名相同。
    IDENTIFIED GLOBALLY AS ‘CN=user’:用户名由Oracle安全域中心服务器验证,CN名字表示用户的外部名。
    [DEFAULT TABLESPACE tablespace]:默认的表空间。
    [TEMPORARY TABLESPACE tablespace]:默认的临时表空间。
    [QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace:用户可以使用的表空间的字节数。
    [PROFILES profile_name]:资源文件的名称。
    [PASSWORD EXPIRE]:立即将口令设成过期状态,用户再登录前必须修改口令。
    [ACCOUNT LOCK or ACCOUNT UNLOCK]:用户是否被加锁,默认情况下是不加锁的。

创建用户实例

(1)创建用户,指定默认表空间和临时表空间。

    创建用户名为wang,口令为wbtest,默认表空间为users,临时表空间为TEMP的用户。

    示例1:
    CREATE USER wang IDENTIFIED BY wbtest
    DEFAULT TABLESPACE users
    TEMPORARY TABLESPACE TEMP;

    在创建用户时通过QUOTA xxxM ON tablespace_name 子句即可。

(2)创建用户,并配置磁盘限额。

    创建一个用户名为wbtest,口令为wbtest,默认表空间为users,临时表空间为TEMP的用户,并且不    允许该用户使用SYSTEM表空间。

    示例2:

    CREATE USER wbtest IDENTIFIED BY wbtest
    DEFAULT TABLESPACE users
    TEMPORARY TABLESPACE TEMP
     QUOTA 0 ON SYSTEM;

(3)配置用户在指定表空间上不受限制。

     创建一个用户名为test,口令为test,默认表空间为users,并且该用户使用users表空间不受限制

     示例3:

     CREATE USER test IDENTIFIED BY test
     DEFAULT TABLESPACE users
     QUOTA UNLIMITED ON users;

在创建用户时,以下几点特别需要特别注意。

    初始建立的数据库用户没有任何权限,不能执行任何数据库操作。

    如果建立用户时不指定DEFAULT TABLESPACE子句,Oracle会将SYSTEM表空间作为用户默认表空间。

    如果建立用户时不指定TEMPORARY TABLESPACE子句,Oracle会将数据库默认临时表空间作为用户的临时表空间。

    如果建立用户时没有为表空间指定QUOTA子句,那么用户在特定表空间上的配额为0,用户将不能在相应表空间上建立数据对象。

    初始建立的用户没有任何权限,所以为了使用户可以连接到数据库,必须授权其CREATE SESSION权限

修改用户密码

    alter user username identified by password;

ORA-01045:user users lacks CREATE SESSION privilege;logon denied问题的解决方案

上诉问题是由于系统创建了用户users,但是没有给用户users赋予connect,resource权限导致,分配权限即可解决

      grant connect,resource to users

九、角色 
角色即权限的集合,可以把一个角色授予给用户 

create role myrole;//创建角色 
grant create session to myrole;//将创建session的权限授予myrole 
grant myrole to zhangsan;//授予zhangsan用户myrole的角色 
drop role myrole;删除角色 
/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/

七、操作表的用户的表 

/*需要在表名前加上用户名,如下*/ 
select * from zhangsan.tablename 
/*需要在表名前加上用户名,如下*/ 
select * from zhangsan.tablename 

八、权限传递 
即用户A将权限授予B,B可以将操作的权限再授予C,命令如下: 

grant alert table on tablename to zhangsan with admin option;//关键字 with admin option 
grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似 
grant alert table on tablename to zhangsan with admin option;//关键字 with admin option 
grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似