MS SQL高级——数据库安全

 

数据库安全

数据库安全

数据库的安全机制

《登录验证方式》有两种

  • SQLServer身份验证:适合于非windows平台的用户或Internet用户,需要提供帐户和密码。
  • Windows身份验证:适合于windows平台用户,不需要提供密码,和windows集成验证。

《登录帐户类型》有两种

  • SQLServer 帐户
  • Windows帐户

添加登录账户

添加Windows登录帐户(了解)

1 USE master
2 GO
3 EXEC sp_grantlogin 'PC-20020101LAWH\TeacherZheng'
View Code

注意问题

  • 创建登录账号一定要在master数据库中。
  • 存储过程的参数:“域名\用户名”或者“计算机名\用户名”

 

 

 添加SQLServer登录帐户(重点)

1 USE master
2 GO
3 EXEC sp_addlogin 'xiaoliu', '1234'
View Code

 

 

创建数据库用户

创建数据库用户的方法

1 USE StudentManageDB
2 GO
3 EXEC sp_grantdbaccess
4     'PC-20020101LAWHITeacherWang', 'wangUser01'
5 
6 EXEC sp_grantdbaccess
7     'xiaoliu', 'xiaoliuUser02'
View Code

注意问题

  • 创建数据库用户一定要在当前的数据库中。
  • 存储过程的参数:登录账户名,数据库用户名。

系统内置的数据库用户

dbo用户

  • 表示数据库的所有者(DB Owner)。
  • 无法删除dbo用户,此用户始终出现在每个数据库中。
  • 默认分配给sa登录账号。

guest用户

  • 适用于没有数据库用户的登录帐号访问。
  • 每个数据库可有也可删除。

 

 登录账号和用户删除

 

向数据库用户授权

授权的语法

grant 权限 [on表名]  to 数据库用户

收回权限的语法

revoke 权限 [on表名] to 数据库用户

代码编写分析

 

用户角色管理

问题引出

  • 给单个数据库用户授权非常麻烦,能否创建一个数据库用户,然后直接赋予它一组已经定义好权限?

解决

  • 定义一个角色,然后给该角色设置权限,再将该角色赋予特定用户。
  • 使用已定义好的角色(固定角色),直接赋予特定的数据库用户即可。

固定角色

角色名称 角色描述
db_owner 数据库的拥有者。可对数据库和其对象进行所有管理工作。此角色的权限可以包括以下其他角色的权限
db_accessadmin 可以新建和删除windows用户组、windows用户和数据库用户
db_datareader 看看到数据库中所有用户创建的表内的数据
db_datawriter 可以新建、修改、删除数据库中的所有用户创建的表内数据
db_ddladmin 可以新建、修改、删除数据库中的对象
db_securityadmin 可管理数据库内的权限控制,如管理数据库的角色和角色内的成员、管理数据库对象的访
db_backupoperator 具有备份数据库的权限
db_denydatareader 可以拒绝选择数据库中的数据
db_denydatawr iter 可以拒绝更改数据库中的数据

赋予数据库用户固定角色

exec sp_addrolemember‘数据库角色名称’,‘数据库用户名’

删除角色成员

exec sp_droprolemember‘数据库角色名称’,‘数据库用户名’

 

 

END

 

posted @ 2022-05-29 15:30  云谷の风  阅读(45)  评论(0编辑  收藏  举报