我在 AWS 上使用 SQL Server Express,當嘗試MAXDOP通過 T-SQL 查詢更改時,我收到一條錯誤訊息
資料庫錯誤:[Microsoft][SQL Server Native Client 11.0][SQL Server]用戶無權執行此操作。(37000: 15,247) ...您沒有運行 RECONFIGURE 陳述句的權限 (37000: 5,812)。
我想這也可能發生在不在 AWS 上的 SQL Server 實體上,這似乎是用戶權限問題。
有沒有辦法以編程方式檢查用戶是否可以(或不能)運行該RECONFIGURE陳述句,最好在 SQL Server >= 2014 上運行 T-SQL 查詢?
uj5u.com熱心網友回復:
該RECONFIGURE陳述句需要服務器級ALTER SETTINGS權限。fn_my_permissionsTVF可用于以編程方式檢查當前用戶是否具有權限:
IF NOT EXISTS(
SELECT 1
FROM fn_my_permissions(NULL, 'server')
WHERE permission_name = N'ALTER SETTINGS'
)
BEGIN
PRINT N'Current user does not have ALTER SETTINGS permission needed for RECONFIGURE statement';
END;
或者,根據@lptr 的評論,可以使用HAS_PERMS_BY_NAME 標量函式:
IF HAS_PERMS_BY_NAME(NULL, NULL, 'ALTER SETTINGS') = 0
BEGIN
PRINT N'Current user does not have ALTER SETTINGS permission needed for RECONFIGURE statement';
END;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425348.html
上一篇:基于兩個時間戳列將單行拆分為多行
下一篇:顯示字串中每個字符的ASCII碼
