gpt4 book ai didi

teradata - 如何识别 Teradata 用户的所有权限?

转载 作者:行者123 更新时间:2023-12-02 19:44:48 28 4
gpt4 key购买 nike

我正在寻找一种方法来识别授予特定数据库中用户的默认权限。我已经尝试过:

select *
from dbc.allrights
where username='user-id'
and databasename='database-name'

上述有两个问题;首先,如所写,查询为用户 ID 拥有的每个表的每个权限返回一行,并且它包括专门授予的权限。其次,如果用户 d 根本没有创建任何表,则不会返回任何行。

我希望有另一个 DBC View ,其中包含用户和数据库的默认权限。

最佳答案

您可以使用此查询来检查用户对不同数据库的访问:

SELECT               
A.GRANTEE as ProxyID,B.DATABASENAME,
CASE WHEN B.ACCESSRIGHT = 'D' THEN 'DELETE'
WHEN B.ACCESSRIGHT = 'I' THEN 'INSERT'
WHEN B.ACCESSRIGHT = 'R' THEN 'SELECT'
WHEN B.ACCESSRIGHT = 'SH' THEN 'SHOW TABLE/VIEW'
WHEN B.ACCESSRIGHT = 'U' THEN 'UPDATE' ELSE 'OTHER' END ACCESS_LEVEL
FROM
DBC.ROLEMEMBERS A Join DBC.ALLROLERIGHTS B
ON
A.ROLENAME = B.ROLENAME
WHERE
Grantee='USER_ID' AND B.DATABASENAME IN ('DATABASE1','DATABASE2',.....)

GROUP BY 1,2,3
ORDER BY 1,2,3

希望对你有帮助。

关于teradata - 如何识别 Teradata 用户的所有权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492956/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com