oracle:用户,角色,user,roll

创建用户,角色,管理等。

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]:用户是否被加锁,默认情况下是不加锁的。

eg:

CREATE USER user_name IDENTIFIED BY key;

修改用户密码:

ALTER USER user_name IDENTIFIED BY new_key;

也可以在sqlplus 登录后直接PASSWORD  会提示修改。

删除用户

DROP USER user_name;

向用户授予系统特权

GRANT EXECUTE ANY PROCEDURE TO suer_name [WITH ADMIN OPTION];

 后面的 WITH ADMIN OPTION 这样 用户就可以将权授给别人

检查授予用户的系统特权

SELECT *FROM user_sys_privs;

撤销用户的系统特权

REVOKE CREATE TABLE FROM user_name;

对象特权

 向用户授予对象特权

GRANT SELECT , INSERT ON table_name[.column_name] TO user_name [WITH GRANT OPTION];

 

检查已授予的对象特权

SELECT * FROM user_tab_privs_made [WHERE table_name='table_name'];

 

检查已接收的对象特权

SELECT *FROM user_tab_privs_recd ;

 

创建同名对象

CREATE SYNONYM ref_name FOR user_name.table_name;

eg:
CREATE SYNONYM customers FOR store.customers;

 

创建公共同名对象

CREATE PUBLIC SYNONYM ref_name FOR user_name.table_name;

 

需要创建公共用户需要授权 CREATE PUBLIC SYSNONYM (可以通过system 登录授予用户)

这样任何其他用户登录都能够利用创建的同名对象,跟上面的那个不同的是上面的只是创建的用户才能够使用。

撤销用户对象特权

REVOKE SELECT ON table_name FROM user_name;

 

如果user_name 将权力授予了其他用户,那么其他用户也会失去权力。

 

角色就是一组特权

创建角色

CREATE ROLE role_name [IDENTIFIED BY keyword];

 

角色授权

GRANT CREATE USER TO role_name1;
GRANT role_name1 TO role_name2;

 

将角色授予用户

GRANT role_name TO user_name;

 

检查授予用户的角色

可以检查已经授予一个用户哪些角色

SELECT * FROM user_role_privs;

 

检查授予角色的系统特权

可以检查已经授予一个角色哪些系统特权。

SELECT * FROM role_sys_privs;

 

检查授予角色的对象特权

SELECT * FROM role_tab_privs;

 

 

默认角色

禁用默认角色

通过system 将用户的角色禁用

ALTER USER user_name DEFAULT ROLE ALL EXCEPT role_name;

 

然后user_name 登录时,想开启角色

SET ROLE role_name IDENTIFIED BY keyword;

 

想清楚全部角色

SET ROLE NONE;

 

清楚特定角色

SET ROLE ALL EXCEPT role_name;

 

撤销用户的角色

REVOKE role_name FROM user_name;

 

撤销角色中的特权

REVOKE ALL ON table_name FROM role_name;

 

删除角色

DROP ROLE role_name;

 

 

 

 

 

posted @ 2012-04-14 03:52  A_zhu  阅读(585)  评论(0编辑  收藏  举报