问题描述
云数据库RDS SQL Server实例登录报错,报错如下:
cannot open user default database.Login failed.
问题原因
RDS SQL Server登录用户对应的默认数据库下没有关联的用户。
SELECT
sp.name AS LoginName,
sl.default_database_name AS DefaultDatabase
FROM
sys.server_principals sp
JOIN
sys.sql_logins sl ON sp.principal_id = sl.principal_id where sp.name='jmuser03'
如下示例,jmuser03
用户对应的默认数据库为jmdb02
,如果此时jmdb02
数据库下没有关联的用户,则无法登录,就会报此错误。
通过SQL检查是否有此登录用户关联的用户。
USE jmdb02; -- 将[jmdb02]替换为实际的数据库名称
GO
SELECT
sp.name AS LoginName,
dp.name AS UserName
FROM
sys.server_principals sp
JOIN
sys.database_principals dp ON dp.sid = sp.sid
WHERE
sp.type IN ('S', 'U', 'G') -- S=SQL Login, U=Windows User, G=Windows Group
AND
sp.name = 'jmuser03'; -- 将[jmuser03]替换为实际的数据库名称
解决方案
在此数据库下为登录用户创建一个关联的用户。
USE jmdb02; -- 将[jmdb02]替换为实际的数据库名称
GO
CREATE USER jmuser03 -- 将[jmuser03]替换为实际的想创建的用户名
FOR LOGIN jmuser03; -- 将[jmuser03]替换为实际的登录用户名
GO
相关文档
如何登录到RDS SQL Server数据库,请参见连接SQL Server实例。
适用于
云数据库RDS SQL Server版
文档内容是否对您有帮助?