oracle把一个用户的所有表的查询权限给另一个用户

在Oracle中,可以使用以下步骤将一个用户的所有表查询权限授予另一个用户:

1.以授予权限的用户登录数据库,并在SQL Plus中执行以下语句,以创建一个包含所有表的脚本:

SELECT 'GRANT SELECT ON old_user.' || TABLE_NAME || ' TO new_user;'
FROM ALL_TABLES
WHERE OWNER = 'old_user';

其中old_user是要授予权限的用户,new_user是要接收权限的用户。执行后会生成一系列GRANT语句。

2.将生成的GRANT语句复制到SQL Plus中,并执行它们以授予新用户对所有表的查询权限。

生成

GRANT SELECT ON old_user.table1 TO new_user;
GRANT SELECT ON old_user.table2 TO new_user;
GRANT SELECT ON old_user.table3 TO new_user;
...

 上面生成的是查询权限 如果加别的权限可以用下面的sql进行查询

SELECT 'GRANT SELECT, INSERT, UPDATE, DELETE ON old_user.' || TABLE_NAME || ' TO new_user;'
FROM ALL_TABLES
WHERE OWNER = 'old_user';

注意:此操作将授予新用户对所有表的查询权限,包括可能包含敏感信息的表。在执行此操作之前,请确保已经仔细考虑了安全风险并采取必要的措施。

你可能感兴趣的:(oracle,数据库,sql)