工作中或用到 oracle创建用户,并授权其只能查询数据库的某些表,示例如下:
-- 1、创建用户ndmpoc,密码为testuser
create user ndmpoc identified by "Dwe327@yyt%8Fh";
-- 2、授权连接数据库权限给ndmpoc
grant create session to ndmpoc;
-- 3、授权查询表TABLE_A的权限给ndmpoc
grant select on ndm_GGG_PROPERTYS to ndmpoc;
-- 4、创建同义词ndmpoc.TABLE_A,system为数据库名称
create synonym ndmpoc.ndm_GGG_PROPERTYS for system.ndm_GGG_PROPERTYS ;
-- 5、将对同义词ndmpoc.TABLE_A查询授权给ndmpoc,
-- 这样ndmpoc查询此表的时候,就可以直接“select * from TABLE_A”,而不需要带上数据库名system.TABLE_A
grant select on ndmpoc.ndm_GGG_PROPERTYS to ndmpoc;
-- 6、删除用户ndmpoc
drop user ndmpoc cascade;
-- 7、回收权限
revoke select on ndmpoc.ndm_GGG_PROPERTYS FROM ndmpoc;
REVOKE select on ndm_GGG_PROPERTYS FROM ndmpoc;
-- 8、删除同义词
DROP SYNONYM ndmpoc.ndm_BP_PROPERTYS;
--查询出所有表的grant select on table_name to UserA
select 'grant select on '||owner||'.'||object_name||' to ndmpoc;' from dba_objects where owner in ('UserB') and object_type='TABLE';
Oracle创建用户并授权查询特定表

3682

被折叠的 条评论
为什么被折叠?



