我試圖使用當前用戶的用戶名(System_user)與他們的登錄信息([權限路徑]),它告訴我哪個表他們被允許在視圖中看到的數據的子集。視圖不能用變量或臨時表創建,所以試圖用戶定義的函數返回一個表,但它似乎超出了我目前的技能。我如何創建視圖在查詢中使用SYSTEM_USER的權限路徑
它可以作爲一個查詢
DECLARE @user as varchar(50)
SELECT @user = SYSTEM_USER
CREATE TABLE LoginInformation(
[account name] varchar(50),
[type] varchar(50),
[privilege] varchar(50),
[mapped login name] varchar(50),
[permission path] varchar(50)
)
INSERT LoginInformation
EXEC xp_LoginInfo @AcctName = @user, @Option = 'all';
SELECT * FROM SomeTableName
WHERE Permission IN (SELECT [permission path] FROM LoginInformation)
在創建視圖時我會被卡住,因爲我不能聲明一個變量:
DECLARE @user as varchar(50)
SELECT @user = SYSTEM_USER
當我試圖用戶自定義函數我耽擱了,因爲我可以不要插入執行語句
INSERT LoginInformation
EXEC xp_LoginInfo @AcctName = @user, @Option = 'all';
我也似乎無法做到Ë簡單的解決方案:
INSERT LoginInformation
EXEC xp_LoginInfo @AcctName = SYSTEM_USER, @Option = 'all';
理想我想有把SYSTEM_USER作爲參數,並給了我只是用戶的[許可路徑]的表中的功能。然後我可以在我的視圖創建中使用它。
WHERE Permission IN (MyFunctionName(SYSTEM_USER))
爲什麼你不使用'INSERT LoginInformation EXEC xp_LoginInfo @AcctName = SYSTEM_USER,@Option ='all';'在你的視圖內而不是聲明一個變量? –
我不確定,但我收到一條消息:關鍵字'SYSTEM_USER'附近的語法錯誤。 – JaredStroeb