你不知道的SQL用户

数据库安全机制:

1.登录账户:
(1)登录方式:
a.Windows身份验证
b.SQL Server身份验证
(2)登录账户类型:
a.SQL Server账户
b.Windows账户
2.SQL Server登录
(1)SQL Server三层安全管理机制:
登录账户 能够找到服务器
数据库账户 能够找到服务器上数据库
数据库账户权限 能够控制登录账户对数据库的操作权限
(2)登录名(登录账户)
①用以登录SQL Server数据库服务器
②一个数据库服务器上可有若干个数据库
(3)数据库账户
①用以访问指定的数据库
②找到数据库用户对于的权限,操作数据库

添加用户

1.添加登录用户

创建语法格式:

  		EXEC sp_addlogin '用户名','密码'

sa账户:超级管理员账户,拥有数据库管理的最高权限

2.创建数据库用户

(1)创建语法格式:

	EXEC sp_grantdbaccess '数据库账户','登录用户'
--第一个参数数据库账户必须存在

(2)系统内置的数据库用户
① dbo用户
a.表示数据库的所有者(DB Owner)
b.无法删除dbo用户
c.默认分配给 sa登录账户
②guest用户
a.适用于没有数据库用户的登录账户访问
b.数据库可有可无

删除用户

1.删除登录用户

删除语法格式:

	EXEC sp_droplogin '登录用户名'

2.删除数据库用户

	EXEC sp_dropUser '数据库用户名'

数据库的用户授权

1.数据库用户授权

语法格式:

	grant select,insert,update on 数据表名 to 数据库用户名

2.收回数据用户权限

语法格式:

	REVOKE SELECT ON 数据表名 TO 数据库用户名

用户角色管理

问题:
给单个数据库用授权非常麻烦,能否创建一个数据库用户,然后直接赋予一组已经定义的权限
解决:
1.定义一个用户,给该用户设置权限,再将该角色赋予特定的用户
2.使用已经定义好的角色(固定角色),直接赋予特定的数据库用户

角色 角色描述
db_owner 数据库的拥有者,权限包含任何其他角色的权限
db_accessadmin 可以新建,删除Windows和数据库用户
db_datareader 查看数据中所有用户创建的表内数据
db_datawriter 可以新建,修改,删除,数据库所有用户中创建的表内数据
db_ddladmin 可以新建,修改,删除,数据库对象(视图…)
db_securityadmin 可以管理数据内的权限控制,(如管理数据库的角色和角色内的成员,管理数据库对象访问权限)
db_backupoperator 具有备份数据库
db_denydatareader 拒绝选择数据库中数据
db_denydatawriter 拒绝更改数据库中的数据
发布了134 篇原创文章 · 获赞 118 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/dust__/article/details/104830877