Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 10498|Répondre: 0

[Source] SQL Server pour interroger les permissions et rôles des objets de l’utilisateur

[Copié le lien]
Publié sur 28/01/2015 16:33:32 | | |
Interrogation des autorisations d’objets et des rôles des utilisateurs dans SQL Server[@more@]

-- Interroger les permissions d’objet de l’utilisateur
exécutif sp_helprotect NULL, 'UserName'
-- Interroger le rôle de l’utilisateur
exec sp_helpuser 'UserName'
-- Interroger quels utilisateurs ont un rôle système spécifié
exécutif sp_helpsrvrolemember « sysadmin »
-- Les rôles imbriqués peuvent être interrogés
AVEC tree_roles
(
SÉLECTIONNEZ role_principal_id, member_principal_id
DE sys.database_role_members
OÙ member_principal_id = USER_ID(« Nom d’utilisateur »)
UNION ALL
SÉLECTIONNEZ c.role_principal_id c.member_principal_id
DE sys.database_role_members EN C
jonction interne tree_roles
sur tree_roles.member_principal_id = c.role_principal_id
)
SELECT distinct USER_NAME(role_principal_id) Nom du rôle
DE tree_roles
-- Tableau de base lié aux autres autorisations
Select * à partir des sysusers
Select * depuis syspermissions
-- Qui a accès à mon instance SQL Server ?
CHOISIR
nom comme UserName, type_desc comme UserType is_disabled comme IsDisabled
DE sys.server_principals
où type_desc dans ('WINDOWS_LOGIN', 'SQL_LOGIN')
ordre par type d’utilisateur, nom, IsDisabled
-- Qui a accès à mes bases de données ?
CHOISIR
dp.name comme UserName, dp.type_desc comme UserType, sp.name comme LoginName sp.type_desc comme LoginType
DE sys.database_principals DP
JOINDRE sys.server_principals SP SUR dp.principal_id = sp.principal_id
ordre par UserType
sélectionner * depuis sys.database_principals
-- Rôles de serveur
choisir
p.name comme Nom d’Utilisateur, p.type_desc comme Type d’Utilisateur, pp.name comme NomDerôleServeur, pp.type_desc comme RôleServeurType
De sys.server_role_members rôles
rejoindre sys.server_principals p sur roles.member_principal_id = p.principal_id
rejoindre sys.server_principals pp sur roles.role_principal_id = pp.principal_id
où pp.name dans ('sysadmin')
ordre par NomrôleServeur, Nom d’utilisateur
-- Rôles dans les bases de données
CHOISIR
p.name comme UserName, p.type_desc comme UserType, pp.name comme DBRoleName, pp.type_desc comme DBRoleType pp.is_fixed_role comme IfFixedRole
DE sys.database_role_members rôles
JOIN sys.database_principals p ON roles.member_principal_id = p.principal_id
JOIN sys.database_principals pp ON roles.role_principal_id = pp.principal_id
où pp.name dans ('db_owner', 'db_datawriter')
-- Que peuvent faire ces utilisateurs ?
CHOISIR
grantor.name en tant que GrantName, dp.state_desc en StateDesc, dp.class_desc en ClassDesc, dp.permission_name en PermissionName ,
OBJECT_NAME(major_id) en tant qu’ObjectName, GranteName = grantee.name
DE sys.database_permissions DP
REJOIGNEZ sys.database_principals bénéficiaire sur dp.grantee_principal_id = grantee.principal_id
REJOIGNEZ sys.database_principals donateur sur dp.grantor_principal_id = grantor.principal_id
où permission_name comme ' %UPDATE %'






Précédent:Configuration du serveur SQLSERVER
Prochain:comboBox en lecture seule (sélection seule)
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com