用法:
有两个用户:user1和user2,都是在库TEST上,分别有表user1.table1,user2.table2
但是用user1登录的时候,user2上表就不能用,此时就可以使用grant命令了:
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }
如 grant insert,update,delete on user2.bable2 to user1 此时,user1用户就可以操作user2用户的table2表了,
如 在user1下,select * from user2.table2
进阶:
不同库
命令格式
grant 权限 on 数据库名.表名 to 用户名@登陆方式 identified by 'password1';
revoke的作用则是回收授于用户的权限
命令格式为:
revoke 权限 on 数据库名.表名 from 用户名@登陆方式;
查看权限:
ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息
(这里的*可以为TABLES,INDEXES,OBJECTS,USERS等。)
1.1查看所有用户
1.select * from dba_user;
2.select * from all_users;
3.select * from user_users;
1.2查看用户系统权限
1.select * from dba_sys_privs;
2.select * from all_sys_privs;
3.select * from user_sys_privs;
1.3查看用户对象权限
1.select * from dba_tab_privs;
2.select * from all_tab_privs;
3.select * from user_tab_privs;
1.4.查看所有角色
1.select * from dba_roles;
1.5.查看用户所拥有的角色
1.select * from dba_role_privs;
2.select * from user_role_privs;
1.6.查看当前用户的缺省表空间
1.select username,default_tablespace from user_users;
1.7.查看某个角色的具体权限
1.如grant connect,resource,create session,create view to TEST;
2.查看RESOURCE具有那些权限,
3.用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';