Jus*_*ave 49
Oracle数据库中的用户仅具有您授予的权限.因此,您只需不授予任何其他权限即可创建只读用户.
创建用户时
CREATE USER ro_user
IDENTIFIED BY ro_user
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
Run Code Online (Sandbox Code Playgroud)
用户甚至没有登录数据库的权限.你可以批准
GRANT CREATE SESSION to ro_user
Run Code Online (Sandbox Code Playgroud)
然后你可以去授予你想要的任何读权限.例如,如果您想要RO_USER
查询SCHEMA_NAME.TABLE_NAME
,您可以执行类似的操作
GRANT SELECT ON schema_name.table_name TO ro_user
Run Code Online (Sandbox Code Playgroud)
通常,您最好创建角色,然后授予角色对象权限,以便您可以将角色授予不同的用户.就像是
创建角色
CREATE ROLE ro_role;
Run Code Online (Sandbox Code Playgroud)
在特定模式中的每个表上授予角色SELECT访问权限
BEGIN
FOR x IN (SELECT * FROM dba_tables WHERE owner='SCHEMA_NAME')
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || x.table_name ||
' TO ro_role';
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
然后将角色授予用户
GRANT ro_role TO ro_user;
Run Code Online (Sandbox Code Playgroud)
小智 15
create user ro_role identified by ro_role;
grant create session, select any table, select any dictionary to ro_role;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
104317 次 |
最近记录: |