使用 T-SQL 脚本,授予root用户访问 ConsumptionData(自定义的库)
数据库权限
注意:先使用windows验证方式登录,运行sql脚本
如:
1.创建或配置登录名:
USE [master];
GO
-- 创建 SQL Server 身份验证的登录名
CREATE LOGIN [root] WITH PASSWORD = 'StrongPassword123';
GO
2.授予权限给登录名:
USE [ConsumptionData];
GO
-- 创建数据库用户
CREATE USER [root] FOR LOGIN [root];
GO
-- 授予 db_datareader 和 db_datawriter 角色
EXEC sp_addrolemember @rolename = N'db_datareader', @membername = N'root';
EXEC sp_addrolemember @rolename = N'db_datawriter', @membername = N'root';
GO
运行结果:
检查现有的权限
1.查看数据库用户:
USE [ConsumptionData];
GO
SELECT * FROM sys.database_principals;
GO
2.查看用户的角色成员:
USE [ConsumptionData];
GO
SELECT dp.name AS UserName, r.name AS RoleName
FROM sys.database_role_members drm
INNER JOIN sys.database_principals dp ON drm.member_principal_id = dp.principal_id
INNER JOIN sys.database_principals r ON drm.role_principal_id = r.principal_id;
GO
其他注意事项
- 确保登录名和数据库用户一致:登录名和数据库用户之间需要正确关联。
- 检查服务器角色:确保登录名没有被限制在服务器级别。例如,可以检查
sys.server_principals
和sys.server_role_members
视图。 - 使用正确的身份验证方式:确保使用正确的身份验证方式(SQL Server 身份验证或 Windows 身份验证)。
通过以上步骤,您应该能够解决 root
用户无法访问 ConsumptionData(自己的库)
数据库的问题。