Hik*_*ari 4 sql-server permissions sql-server-2012 ssis-2012
我正在开发一个 ETL,其提取步骤必须从表中读取数据。
有时我的用户对该表的访问权限被撤销。因此,为了避免 ETL 失败,在阅读表之前,我必须验证我是否有权这样做。如果没有,我将跳过提取步骤并运行 ETL 的其余部分。
验证我的用户是否对表具有读取权限的正确方法是什么?
要检查安全对象的特定有效权限,请使用HAS_PERMS_BY_NAME
*.
例如,要显示当前安全上下文是否SELECT
对Production.Product
AdventureWorks 示例数据库中的表具有权限:
SELECT
HAS_PERMS_BY_NAME
(
N'Production.Product',
N'OBJECT',
N'SELECT'
);
Run Code Online (Sandbox Code Playgroud)
相关:要列出安全对象的有效权限,请使用sys.fn_my_permissions
:
SELECT
P.[entity_name],
P.subentity_name,
P.[permission_name]
FROM sys.fn_my_permissions
(
N'Production.Product',
N'OBJECT'
) AS P
ORDER BY
P.subentity_name,
P.[permission_name];
Run Code Online (Sandbox Code Playgroud)
* 内置函数将一切都考虑在内。SQL Server 必须知道如何正确确定有效权限。这个函数暴露了这种能力。
归档时间: |
|
查看次数: |
6638 次 |
最近记录: |