提要:我在 SQL Server 中新建用户登录时,出现了三种错误,错误代码分别是 18456、15128、4064
----------------------------------- 正 文 -----------------------------------一、实验环境
Windows 7
SQL Server 2008
数据库实例名为 TestDB,新建的用户名为 testUser
二、操作步骤
1、打开 SQL Server Management Studio,以 Windows身份认证方式登录
2、在对象资源管理器下,右键 Security ==> Logins ==> New Login
![](https://i-blog.csdnimg.cn/blog_migrate/97964d0c4c6841c9c0dd36a9ab7687d9.png)
3、打开 新建登录名 对话框后,常规 右侧输入相应的登录名、密码和默认数据
![](https://i-blog.csdnimg.cn/blog_migrate/1184208b2a46df9fd395c214183dd1e3.png)
用户映射选项卡下
![](https://i-blog.csdnimg.cn/blog_migrate/93b01fdbae3e25cb5606fc602742f98b.png)
状态选项卡下
![](https://i-blog.csdnimg.cn/blog_migrate/e91e043e7a83c8b500e7a0ec84d5ad9f.png)
输入完成后确认
4、对象资源管理器 下,右键 实例名称(不知道这么叫对不对),下图中蓝色背景的部分 ==> Properties
![](https://i-blog.csdnimg.cn/blog_migrate/607886ef1746aea1324bec414cb740cc.png)
在 安全性 选项卡下选择 混合验证模式 后确定
![](https://i-blog.csdnimg.cn/blog_migrate/9147179cc69efee6f1a4d0d0c34c026b.png)
5、重启 SQL Server 服务
![](https://i-blog.csdnimg.cn/blog_migrate/39639744a0e8449f8c563d8e476de943.png)
此时新建用户成功。
三、几点说明
1、如果在 步骤3 常规 选项卡中勾选了 强制实施密码策略,则会出现 15128 错误
此时需要以 Windows身份认证方式 登录后 执行如下语句
- AlTER LOGIN testUser WITH PASSWORD = '新密码'
AlTER LOGIN testUser WITH PASSWORD = '新密码'
2、如果在 步骤3 用户映射 选项卡中没有将该用户映射到相应的数据库,则即使在 常规 选项卡中指定了 默认数据库,该用户也不能正常登陆了,此时报错 4064,我的理解是数据库用户列表中并没有该用户,所以用户登录时拒绝操作
3、如果在 步骤4 中没有指定 服务器身份验证 方式,则登录时会出现 18456 的错误
四、总结
1、此时的 testUser 用户所拥有的权限非常低,仅是 可以连接,权限配置在相应数据库的 属性 配置中
2、整个配置过程可以理解为 新建用户 ==> 将用户添加到相应的数据库用户列表中 ==> 配置用户权限 ==> 更改 SQL Server 的身份验证方式