Oracle用户、权限管理

熟练掌握数据库用户以及权限的设置很重要。

一、用户

1.创建用户

1 --创建用户
2 create user monkey identified by monkey 
3 default tablespace fruit;

上面创建了一个用户名为"monkey",密码为"monkey"的用户,默认表空间为fruit。

使用以下的语句可以查看此数据库中的所有用户:

1 select * from all_users;

2.修改用户信息

1 --修改用户信息
2 alter user monkey identified by monkey
3 default tablespace SYSTEM;

上面的语句将monkey用户的默认表空间修改为SYSTEM。

使用以下语句可以查看数据库中所有用户更加详细的信息(用户密码、默认表空间等):

select * from dba_users;

3.删除用户

1 --删除用户
2 drop user monkey cascade;

cascade表示删除用户的同时也把用户的数据也删除掉。

 二、权限

1.授予/收回 系统权限

1 -- 赋予用户登录数据库的系统权限
2 GRANT create session to monkey 
3 WITH ADMIN OPTION;
4 -- 收回用户登录数据库的系统权限
5 REVOKE create session from monkey; 

2.授予/收回 对象权限

1 -- 赋予用户操作表的对象权限
2 GRANT select any table to monkey;
3 GRANT select on banana to monkey;
4 -- 收回用户操作表的对象权限
5 REVOKE select any table from monkey;

通过权限授予之后,可以通过以下语句查看对象的权限

1 --查看特定用户拥有的系统权限
2 select * from dba_sys_privs
3 where grantee = 'MONKEY';
4 --查看特定用户拥有的对象权限
5 select * from dba_tab_privs    
6 where grantee = 'MONKEY';  

三、角色

1.创建角色并授予角色权限

1 --创建角色并授予权限
2 CREATE ROLE herorole
3 NOT IDENTIFIED;
4 --授予角色登录的权限
5 GRANT CREATE SESSION TO herorole;

2.设置角色失效(MARK 待写)

3.授予用户角色

1 --授予用户角色
2 GRANT herorole TO monkey;

4.修改角色极其权限

1 --修改角色
2 alter role herorole
3 not identified;
4 --修改角色权限
5 grant create table to herorole;
6 revoke create table to herorole;
7 grant create sesion to herorole;
8 revoke create sesion to herorole;

5.删除角色

1 --删除角色
2 drop role herorole;

此外,你可以查看用户拥有的角色:

1 --查看用户拥有的角色
2 select * from dba_role_privs
3 where grantee = 'MONKEY' ;  

查看某个角色拥有的权限的方法与查询用户的权限一样。

请补充更多的SQL例子。(MARK)

 

posted @ 2014-07-07 18:07  陈树义  阅读(138)  评论(0编辑  收藏  举报