2
DECLARE @SQLStatement VARCHAR(4000)
DECLARE @T_DBuser TABLE (DBName SYSNAME, UserName SYSNAME, AssociatedDBRole NVARCHAR(256))
SET @SQLStatement = 'SELECT
''?'' AS DBName,dp.name AS UserName,USER_NAME(drm.role_principal_id) AS AssociatedDBRole
FROM ?.sys.database_principals dp
LEFT OUTER JOIN ?.sys.database_role_members drm ON dp.principal_id = drm.member_principal_id
WHERE dp.sid NOT IN (0x01) AND dp.sid IS NOT NULL
AND dp.type NOT IN (''C'')
AND dp.is_fixed_role <> 1
AND dp.name NOT LIKE ''##%''
AND ''?'' NOT IN (''master'',''msdb'',''model'',''tempdb'')
ORDER BY DBName'
INSERT @T_DBuser
EXEC sp_MSforeachdb @SQLStatement
SELECT *
FROM @T_DBuser
ORDER BY DBName
我使用從LoginUserPermission.zip文件的代碼上 https://gallery.technet.microsoft.com/scriptcenter/Get-logins-databases-816f66b2發現了一個腳本。附近有語法錯誤「 - 」,利用LoginUserRolePermission.zip
當我嘗試運行只是這一節我收到此錯誤:(34行(S)的影響)
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '-'.
所有的代碼,做工精細的其他部分。我試圖打破只select語句和我收到一個消息
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '?'.
瘋狂的事情是腳本工作就好了兩個星期前。我所要做的就是更改數據庫名稱並運行。
非常感謝!這樣可行!奇怪的是,兩星期前它沒有括號。但它是有道理的,因爲我之前使用過的數據庫沒有破折號!再次感謝! –
@ShertoneYarborough史密斯:不客氣。請務必點擊旁邊的複選標記將此答案標記爲已接受。 –