patternsqlMinor
Even when user has 'bulkadmin' role, query says user does not have role - SQL Server 2012
Viewed 0 times
2012sqluserquerybulkadminrolehassaysdoeswhen
Problem
I am facing a weird issue with SQL Server 2012.
I have a user (say
Now when i run this query
output is 0. But when i execute this query
I can see
Can someone please help me understand how is the output differing or is it BUG in SQL Server 2012? (Can't be a BUG as same query with different user works fine)
I have a user (say
RS\sqluser) which has bulkadmin role.Now when i run this query
Select IS_SRVROLEMEMBER('bulkadmin', 'RS\sqluser')output is 0. But when i execute this query
sp_helpsrvrolemember 'bulkadmin'I can see
RS\sqluser present in the list.Can someone please help me understand how is the output differing or is it BUG in SQL Server 2012? (Can't be a BUG as same query with different user works fine)
Solution
You could have problems whereby the DC is not available, the user is actually a Windows group, or you could possibly have UAC issues. It may even be a permissions issue in AD as regards the account (run xp_logininfo 'RS\sqluser' and see if you get an 0x5 error).
I prefer to directly query the system tables to get that sort of information:
I prefer to directly query the system tables to get that sort of information:
SELECT 1
FROM sys.server_principals sp
INNER JOIN sys.server_role_members srm ON sp.principal_id = srm.member_principal_id
INNER JOIN sys.server_principals sp2 ON srm.role_principal_id = sp2.principal_id
WHERE sp2.name = 'bulkadmin'
AND sp.name = 'RS\sqluser';Code Snippets
SELECT 1
FROM sys.server_principals sp
INNER JOIN sys.server_role_members srm ON sp.principal_id = srm.member_principal_id
INNER JOIN sys.server_principals sp2 ON srm.role_principal_id = sp2.principal_id
WHERE sp2.name = 'bulkadmin'
AND sp.name = 'RS\sqluser';Context
StackExchange Database Administrators Q#37317, answer score: 2
Revisions (0)
No revisions yet.