创建限制用户
现实工作中,经常需要将数据的只读权限赋给其它用户,此文描述具体如何操作。
假设当前数据库用户为 userA, 需要新增用户 userB, 用于读写部分 userA 的用户表;
-- 1、使用 userA 用户登录
--创建用户
CREATE USER userB IDENTIFIED BY "userB@20160708"
DEFAULT TABLESPACE tbs1
TEMPORARY TABLESPACE TEMP;
GRANT "CONNECT" TO userB ; -- 赋予连接数据库权限
-- 根据实际需求,赋予特定权限
grant select on table_name to userB; -- 赋予读取权限
grant update on table_name to userB; -- 赋予更新权限
grant insert on table_name to userB; -- 赋予插入权限
grant create SYNONYM to userB; -- 创建别名权限
-- 批量赋权
select table_name, num_rows
, 'grant select on '|| table_name ||' to userB;' -- 使用userA执行
, 'CREATE OR REPLACE SYNONYM '|| table_name ||' FOR userA.'|| table_name ||';' -- 使用userB执行
from user_tables
order by 1
;
-- 查看被授权使用的表
select * from user_synonyms;
select * from user_role_privs;
select * from session_privs;
-- 查看当前用户的系统权限
select * from user_sys_privs;
-- 查看当前用户的表级权限
select * from user_tab_privs;
-- 查看某个用户拥有的系统权限
select * from dba_sys_privs;
-- 查看角色
select * from role_sys_privs;