sql server 从库创建的用户名登录后访问提示数据库无权限

在主副本库创建登录名并且用户映射赋权指定的数据库权限,副副本库也创建登录名,主副本有权限访问数据库的权限,但是副副本没有权限访问数据库。

解决方案:

检查数据库用户是否映射到登录名

如果数据库用户已存在,但未正确映射到登录名,也会导致此错误。

  • 在目标数据库上运行以下查询,检查用户是否映射到登录名:

    USE your_database_name;

  • SELECT name, sid FROM sys.database_principals WHERE name = 'your_user_name';

  • 在服务器级别运行以下查询,检查登录名的 SID:

    SELECT name, sid FROM sys.sql_logins WHERE name = 'your_login_name';

如果两者的 SID 不一致,说明用户未正确映射到登录名。从库删除 login名后,通过指定sid(和主库的sid一样)重建:

drop login login_name;

GO

CREATE LOGIN login_name WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

重建之后密码可以不对,在修改密码即可。

相关推荐
持敬chijing2 分钟前
Web渗透之SQL注入-SQLMAP使用笔记
数据库·sql·安全·web安全·网络安全·网络攻击模型
瀚高PG实验室2 分钟前
流复制备库停机维护前检查步骤
数据库·瀚高数据库·highgo
xuefuhe12 分钟前
SQL Server变量复用陷阱
sqlserver
BomanGe213 分钟前
NSK直线导轨LH55EL与NH55EM替代指南
前端·javascript·数据库·经验分享·规格说明书
JAVA面经实录91713 分钟前
MongoDB(文档型 NoSQL)
java·数据库·mongodb·nosql
睡不醒男孩03082316 分钟前
第十篇:PostgreSQL 生产环境高可用选型:CLUP 与 Patroni 深度架构对比与踩坑实录
数据库·postgresql·架构
JAVA面经实录91718 分钟前
HBase 知识点梳理(文档型 NoSQL)
大数据·数据库·nosql数据库·hbase
小二·26 分钟前
PostgreSQL 高级特性与性能调优
数据库·postgresql
风味蘑菇干38 分钟前
JDBC(数据库连接池&DBUtils)
java·数据库
标书畅畅行38 分钟前
深度解析钛投标AI标书工具:全流程企业级AI投标解决方案,重构投标数字化生产力
大数据·数据库·人工智能