SQL Server新建用户连接指定数据库报错4064如何解决?
错误4064的核心原因是你创建的SQL登录名没有对应自建数据库的访问权限,即使默认数据库配置为master,手动指定目标数据库登录时也会因为没有权限触发登录失败,可通过以下两种方法解决:
解决SQL Server错误4064操作步骤
方法一:SSMS图形界面操作(适合新手)
- 使用拥有sysadmin权限的账号(如sa账号、Windows本地管理员账号)登录SQL Server Management Studio,连接到目标实例
- 依次展开「安全性」→「登录名」,找到你创建的
User登录名,右键选择「属性」 - 左侧菜单切换到「用户映射」,右侧数据库列表中找到自建的目标数据库,勾选名称前的复选框
- 在下方「数据库角色成员身份」区域按需分配权限:仅需读写权限勾选
db_datareader、db_datawriter,需要数据库全权限勾选db_owner - 点击确定保存配置后,重新用
User账号登录并选择自建数据库即可正常连接
方法二:T-SQL命令操作
直接执行以下SQL语句即可完成权限配置,注意替换语句中的占位符为实际名称:
-- 替换[YourCustomDB]为你自建的数据库名称 USE [YourCustomDB] GO -- 为SQL登录名创建对应的数据库用户 CREATE USER [User] FOR LOGIN [User] GO -- 分配读写权限,需更高权限可替换为对应角色 ALTER ROLE [db_datareader] ADD MEMBER [User] GO ALTER ROLE [db_datawriter] ADD MEMBER [User] GO
异常排查
如果完成配置后仍报错,检查两项配置:
- 确认自建数据库处于正常在线状态,没有脱机、恢复、只读等异常状态
- 确认
User登录名没有被禁用,密码未过期,SQL Server实例已开启SQL Server和Windows身份验证模式
内容的提问来源于stack exchange,提问作者Masi
相关产品推荐
相关产品推荐

