sql server 问题:[08004l lMicrosoftlisQL Server Natve client 11.0][sQL Server]服务器主体 “root“无法在当前安全上下文下访问

使用 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(自己的库) 数据库的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值