文章目录
1 服务器安全管理
1.1 两种身份验证方式
用windows身份验证是根据用户的windows身份权限来进行身份验证,这种方式要直接一些,只要windows登录密码正确就可以访问数据库,sql不判断sa密码。但是在远程连接的时候会因NTML验证的缘故,无法登陆。
用混合身份验证模式,也就是基于Windows身份验证和SQL Server身份混合验证。这个连接不仅包括远程用户还包括本地用户,当远程用户访问时由于未通过windows认证,而进行sql server认证,从而使得远程用户也可以登录。
1.2 固定服务器角色
1.3 Windows身份验证模式和混合模式的切换
- 连接到SQL Server数据库引擎示例,右击,选择“属性”
- 进入“服务器属性”界面
- 在选择页中选择“安全性”,在“服务器身份验证”中选择“SQL Server和Windows身份验证模式”,并点击确定
- 弹出提示框要求重启SQL Server
- 展开数据库实例,选择“安全性”,打开“登录名”,找到sa登录名
- 右击,选择属性,进入属性对话框
- 取消勾选实施强制密码策略,设置sa账户的登录密码
- 在选择页中选择“状态”,确认确认选择登录为已启用
- 退出SSMS,重启SQL Server示例服务
- 使用SQL Server身份登录,身份验证选择SQL Server身份验证,登录名为sa,密码为刚才设定的密码,点击连接
- 登录成功后,可以见到服务器示例右边的登录为SQL Server的sa登录
1.4 创建Windows身份验证的登录名
创建Windows用户
- 右击我的电脑,选择“管理”
- 用户在计算机管理窗口选择“本地用户和组”,再选择“用户”
- 右击“用户”,选择“新用户”
- 在新用户对话框中输入用户名,密码,取消勾选“用户下次登录时须更改密码”
- 点击创建,然后关闭对话框,在面板中可以见到新创建的Windows用户
使用SSMS工具创建Windows身份验证的登录名
- 展开数据库实例,选择“安全性”,再选择“登录名”
- 右击“登录名”,选择“新建登录名”
- 在登录名新建对话框中点击“搜索按钮”
- 弹出“选择用户和组”对话框,点击“高级”
- 进入高级模式后,点击“立即查找”,计算机内所有用户都会展示在下方窗格中
- 选择需要创建登录名的Windows用户,点击确定返回,再点击确定,回到创建登录名窗口
- 点击“确定”,完成Windows账户登录名创建
- 使用Windows用户作为登录名,需要使用该账户登录电脑,然后SSMS会自动选择当前Windows用户进行登录
使用SQL方式创建Windows身份验证的登录名
语法格式:
CREATE LOGIN <[计算机名\用户名]>
FROM WINDOWS
WITH DEFAULT_DATABASE=<默认数据库>
使用示例:
CREATE LOGIN [DESKTOP-LJ2ALIV\winuser]
FROM WINDOWS
WITH DEFAULT_DATABASE=master
1.5 创建SQL Server身份验证的登录名
使用SSMS工具创建SQL Server身份验证的登录名
- 展开数据库实例,选择“安全性”,再选择“登录名”
- 右击“登录名”,选择“新建登录名”
- 勾选“SQL Server身份验证”,在“登录名”中输入要创建的登录名称,取消勾选“强制实施密码策略”(如果密码符合策略要求,可不取消),输入密码
- 完成后点击“确定”,断开当前连接,使用新创建的SQL登录名进行连接
使用SQL方式创建SQL Server身份验证的登录名
语法格式:
CREATE LOGIN <SQL Server登录名>
WITH PASSWORD=<密码>,
DEFAULT_DATABASE=<默认数据库>
使用示例:
CREATE LOGIN sqluser
WITH PASSWORD='123abc',
DEFAULT_DATABASE=master
1.6 配置登录名服务器角色
- 使用新创建的SQL Server登录名连接服务器
- 执行创建数据库命令,显示没有创建数据库权限
- 使用Windows管理员账户(或者sa账户)登录,进入“安全性”,选择“登录名”,右击刚才的登录名,选择“服务器角色”选择页查看角色权限
- 为其添加dbcreateor权限,使其拥有创建数据库的权限,点击确定
- 断开连接,重新以刚才的SQL Server登录名进行登录,执行创建数据库命令
- 创建成功,刷新数据库可以见到县创建的数据库
2 数据库安全管理
2.1 固定数据库角色
2.2 创建Windows验证的数据库用户
使用SSMS工具创建Windows验证的数据库用户
- 打开相应的数据库,选择“安全性”,再选择“用户”
- 右击“用户”,选择“新建用户”
- 弹出“数据库用户-新建”窗口,在“用户类型”中选择“Windows用户”,用户名右击“…”按钮,选择对应的计算机用户,登录名右击“…”按钮,选择服务器中对应的登录名,点击“确定”
- 创建成功,使用该用户名连接服务器可访问该数据库
使用SQL方式创建Windows验证的数据库用户
语法格式:
CREATE USER [计算机名\用户名]
FROM LOGIN [计算机名\登录名]
使用示例:
CREATE USER [DESKTOP-LJ2ALIV\winuser]
FROM LOGIN [DESKTOP-LJ2ALIV\winuser]
2.3 创建SQL Server验证的数据库用户
使用SSMS工具创建SQL Server验证的数据库用户
- 打开相应的数据库,选择“安全性”,再选择“用户”
- 右击“用户”,选择“新建用户”
- 弹出“数据库用户-新建”窗口,在“用户类型”中选择“带登录名的SQL用户”,用户名输入相应的用户名,登录名右击“…”按钮,选择服务器中对应的登录名,点击“确定”
- 创建成功,使用该用户名连接服务器可访问该数据库
使用SQL方式创建SQL Server验证的数据库用户
语法格式:
CREATE USER 用户名
FROM LOGIN 登录名
使用示例:
CREATE USER sqluser
FROM LOGIN sqluser
2.4 数据库角色的使用
- 使用前面创建的用户名访问数据库,尝试查询student表中的数据,提示无SELECT权限
- 以管理员用户登录数据库,打开相应数据库中的“安全性”,再打开角色,右击“数据库角色”,选择“新建数据库角色”
- 弹出“数据库角色-新建”窗口,输入数据库角色名称
- 在选择页中选择“安全对象”,点击“搜索”按钮
- 弹出“添加对象”窗口,选择“特定类型的所有对象”,点击进入“确定”,进入“选择对象类型”窗口
- 在窗口中选择“表”,点击“确定”返回
- 在窗口安全对象中选中需要添加权限的表,在下方窗格找到“选择”条项,勾选“授予”,点击确定
- 成功创建数据库角色,在数据库角色中可以找到该数据库角色
- 打开“安全性”,再打开“用户”,右击需要添加权限的用户名,选择属性
- 在“数据库用户”窗口的选择页选中成员身份,勾选创建的数据库角色,点击确定
- 重新使用前面创建的用户名访问数据库,尝试查询student表中的数据,查询数据成功
3 数据库对象安全管理
使用SSMS工具完成对象权限设置
- 右击相应的数据库用户,选择“属性”,打开数据库用户属性面板
- 在面板窗口的属性页中选择“安全对象”,点击“搜索”按钮
- 弹出“添加对象”窗口,选择“特定类型的所有对象”,点击进入“确定”,进入“选择对象类型”窗口
- 在窗口中选择“表”,点击“确定”返回
- 在窗口中选中需要添加权限的表,在下方窗格找到“选择”条项,勾选需要的权限管理,点击确定
- 完成对象级别权限设置,使用该用户名访问数据库,可以检验权限设置的效果。
使用SQL方式完成对象权限设置
语法格式:
--授予权限
GRANT <权限列表> ON <视图或数据表> TO <用户名>
--拒绝权限
DENY <权限列表> ON <视图或数据表> TO <用户名>
--撤销权限
REVOKE <权限列表> ON <视图或数据表> FROM <用户名>
使用示例:
--授予sqluser对student表的SELECT、UPDATE权限
GRANT SELECT,UPDATE ON student TO sqluser
--拒绝sqluser对student表的DELETE权限
DENY DELETE ON student TO sqluser
--撤销sqluser对student表的UPDATE权限
REVOKE UPDATE ON student FROM sqluser