oracle同一个库上面,不同用户相互赋予权限
用法:
有两个用户: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 SELECT ,ALTER ON user2.序列名 TO user1;
GRANT SELECT ,ALTER ON ahsimis_query.seq_wsbs_person_pay_id TO ahsicp3;
不同用户下的函数赋权
grant execute on 函数名 to 其它用户
grant execute on AHSIMIS_QUERY.wsbs_pk_date_validate to ahsicp3
不通用户下包的赋权
grant execute on 包名 to 其他用户;
grant execute on ahsimis_query.pkg_pan_公众服务平台接口 to ahsicp3
进阶:
不同库
命令格式
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';