前言:权限的控制在数据库安全的管理中占着很重要的一部分,所以如何合理赋予和限制用户的权限对数据库安全有着很大的影响
如发现内容错误,评论区轰炸
9.1
1. 在自主存取控制中,用户分为系统管理员、数据库对象拥有者和普通用户
2. 当主体的许可证级别大于或等于客体的密级时,该主题才能读取相应的客体
当主题的许可证级别等于客体的密级时,该主体才能写对应的客体
9.2
1. 建立登录账户
SQL Server身份验证
CREATE LOGIN 爱坤 WITH PASSWORD = '22333'
MUST_CHANGE
该语句可以选择紧跟MUST_CHANGE来规定用户第一次登录需要更改密码
WINDOWS身份验证
CREATE LOGIN 纯路人 FROM WINDOWS
启用已禁用的登录账户
ALTER LOGIN user ENABLE
更改密码或登录名
ALTER LOGIN user WITH (PASSWORD = '3322') / (NAME = 露出马脚)
删除登录用户
DROP LOGIN user
2. 创建数据库用户
CREATE USER user1
启用
GRANT CONNECT TO user1
禁用
REVOKE CONNECT TO user1
删除数据库用户
DROP USER user1
3. 授权用户
GRANT SELECT(EXECUTE、INSERT、UPDATE等) ON T1 TO user1
T1为能够操作的表,TO后面跟要赋予权限的用户
拒绝对权限
DENY SELECT ON T1 FROM user1
收回权限
REVOKE SELECT ON T1 FROM user1
9.3
1. 固定服务器角色
sysadmin:系统管理员
2. 固定数据库角色
db_datawriter: 具有插入、删除和更新数据库中所有用户数据的权限
db_datareader: 具有查询数据库中所有用户数据的权限
9.X
登录名和用户的关系: 本章最容易混淆的就是登录的账号和数据库的用户,这两个是不同的概念,登录名是你用来登录数据库用的,SQL Server有两种登录的方式,一种是Windows身份验证模式,一种是混合身份验证模式,输入账号密码的就是在混合模式下登录的账户
账户在输入账号密码登陆到SSMS(图形化sql server界面)之后,并不意味着该账户就可以直接操作数据库了,这是两码事,想要操作数据库的话必须要在该数据库下创建对应的数据库用户,数据库用户可以被赋予不同的权限,而账户只是通过用户来操作数据库
我们通过小明这个登录名登录到系统中,然后通过在每个数据库上创建的用户来访问数据库,而每个用户可以被赋予不同的操作权限,这样小明就间接拥有了对不同数据库的不同权限