gpt4 book ai didi

sql - 列出用户对每个数据库的 db_owner 权限

转载 作者:行者123 更新时间:2023-12-01 03:58:57 27 4
gpt4 key购买 nike

我有一个用户 John.Smith,我想知道他有什么数据库 db_owner以及他没有的数据库 db_owner .有我可以运行的脚本吗?我们有很多数据库,当我查看用户 map 时,我觉得我可能看多了一些东西。

最佳答案

你可以使用类似的东西:

CREATE TABLE ##DBOwners
(
DBName SYSNAME,
Username SYSNAME,
Rolename NVARCHAR(50),
IsOwner BIT
);

EXEC sp_MSforeachdb
'
USE [?];
INSERT INTO ##DBOwners
SELECT
DB_NAME(),
dp.name,
dp2.name,
CASE
WHEN dp2.name = ''db_owner'' THEN 1
ELSE 0
END AS ''db_owner''
FROM
sys.database_principals AS dp
LEFT JOIN
sys.database_role_members AS rm
ON
rm.member_principal_id = dp.principal_id
LEFT JOIN
sys.database_principals AS dp2
ON
rm.role_principal_id = dp2.principal_id
WHERE
dp.type <> ''R''
'

SELECT * FROM ##DBOwners WHERE Username = 'John.Smith'
DROP TABLE ##DBOwners;

它使用存储过程 sp_MSforeachdb 收集有关所有数据库的信息,并将结果保存在全局临时表中。

关于sql - 列出用户对每个数据库的 db_owner 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14884408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com