用户管理 是
SQL Server 数据库安全的一个重要机制 它能够设置哪些用户能够做哪些操作
SQL Server 的用户,主要分为两类,一类称为登录用户
这类用户,可以通过用户名和密码来连接数据库,但是呢
不一定能够使用数据库,比如不一定能够创建数据库,也不一定能够查询数据
另一类用户称为数据库用户,这类用户 可以以某种权限操作数据库,通常呢
与登录用户呢,进行关联,那么登录用户就可以操作数据库了
远程连接并操作数据库使用的是
登录名,也就是登录用户及其密码,如果赋予对应的数据库用户权限
那么与之关联的登录用户也就可以使用这种权限,来操作数据库
下面我们来看看,如何创建
登录用户和数据库用户,首先我们启动
企业管理器,开始菜单,所有程序,找到 SQL Server
2012,找到 SQL Server Management Studio
以管理员 sa
的身份 登录数据库服务器
在对象资源管理器中,找到安全性,展开
找到登录名,单击右键新建登录名,在登录名这一项中
输入我们要创建的登录用户名 比如 test1,选择
SQL Server 身份验证,输入初始密码,我们输入
aaa,然后确定 这样我们就创建了一个叫做
test1 的登录名 test1。
但是呢,这样一个登录用户 是能够登录数据库服务器,但是呢基本上
不能做任何事情。
我们断开连接,重新连接,以 test1
来登录,aaa,连接
第一次连接,强制要求修改密码,我们修改为 test1
由于我们是在做练习
我们的密码都设的比较简单,而且容易记忆
在真正的使用中,数据库的密码不能设的这么简单
好,我们新建一个查询,我们知道我们这个里头呢,有一个数据库的名字 叫做
teaching ,现在我们来选用这个数据库
啊,它说 test1
无法 在当前安全上下文下访问数据库,其实是因为
test1 这个用户没有使用这个数据库的权限,同样呢它没有
创建数据库的权限,我们想创建一个数据库
也是不行的,下面呢我们断开这个连接,重新以
管理员身份登录
找到安全性
展开登录名,找到 test1,单击鼠标右键,找到
属性 这里头有一项服务器角色,角色
是拥有相同权限的用户的一种描述,可以认为是权限的集合
将角色赋予某个用户,那么这个用户就拥有了相应的权限
这里我们给我们的登录用户 test1
赋予 dbcreator 这样一个角色,这样角色的用户
可以创建数据库,然后确定
常用的内置服务器角色有
sysadmin,它可以执行 SQL Server
中的任何操作 也就是数据库的管理员具有最大的权限,第二个角色
叫做 serveradmin,这个角色呢可以配置服务器设置
关闭服务器,第三个角色呢叫 setupadmin,可以增加、
删除 和配置链接服务器,控制启动过程 第四类角色叫做
securityadmin 可以管理登录名及其属性,再下来叫做
processadmin,可以管理 SQL Server 的
进程,diskadmin 可以管理磁盘文件
dbcreator 可以创建和修改数据库,
bulkadmin 可以运行 BULK INSERT
命令,从文本文件导入数据 我们常用的两个角色,一个就是
dbcreator 可以创建和修改数据库,一类呢就是
sysaadmin,可以执行SQL Server 的任何 操作,由于
sysaadmin,也就是管理员角色的 权限太大了,这个角色的权限的使用大家要慎重
不要轻易给一个用户赋予 sysaadmin
的权限 下来我们再来断开这个连接
重新连接,以 test1 的身份登录
连接 我们这时候再来创建这个数据库
命令成功,能够创建这个数据库了,我们展开数据库可以看到
testdb。
我们可以来使用这个数据库
也可以在里面创建表
number
varchar name
40 好,我们来执行这个语句,这也是可以的
我们还可以在这个表里头插入数据、 查询数据,等等,它可以拥有对这个创建的
数据库的所有的权限,但是比如我们来使用 teaching
这个数据库,仍然是不行的 那么我们这个 test1
这个用户,可以创建数据库,那么 对它自己创建的数据库拥有所有的权限,但是呢不是它自己的数据库
是没有访问权限的。
下来我们来看 如何创建数据库用户,或者说呢我们想
使 test1 拥有对 teaching 这个数据库的
一些访问权限,我们断开连接 重新连接,以
sa 登录,因为 sa 是管理员
它可以创建用户,赋予用户某些权限 而没有这个创建跟赋予用户权限的用户
是不能够做这些操作的。
在这里头我们展开 数据库,找到 teaching,那么找到
teaching 下面 也有一个安全性,展开里面这个用户
就是数据库的用户 单击鼠标右键,新建用户,用户类型
选择带登录名的 SQL 用户,用户名输入要创建的
数据库的用户名,登录名输入
刚才创建的一个登录用户名,默认构架
不选,然后呢这边,选择页里头有一个叫做成员身份
这里面呢,是数据库的角色
常用的内置数据库角色有 db_owner,也就是数据库的
所有者,拥有对数据库的全部权限。
db _accessadmin 可以添加或删除用户。
db_securityadmin 可以修改角色成员的身份和管理它的权限。
db_ ddladmin,可以执行 DDL
命令,创建、 删除和修改 数据库对象。
db_backup operator 可以备份数据库。
db_ datareader 可以读取数据。
db_datawriter 可以添加、 删除和更改数据。
db_denydatareader 不能够读取数据。
db_denydatawriter,不能够修改数据。
我们常用的 一个呢,就是 db_datareader,可以来读取数据的。
还有一类呢就是 db_owner 设为数据库的所有者,拥有数据库的所有操作权限
我们可以给这个用户 赋予一个
db_owner 的权限,或者说 赋予一个
datareader 的权限 如果我们给这个数据库用户赋予一个
db_owner 的权限,那么这个用户
就成了这个数据库的拥有者,可以拥有 对这个数据库的所有的操作权限。
如果给它赋予一个 datareader 的权限,那么它能够读取这个数据库的一些内容。
当然底下这个呢,级别更高一些 如果有了 db_owner 的话,那么 reader 的权限自然也就有了。
我们来单击 确定,我们再断开这个连接
再以 test1 的身份来进行登录
好,这个时候我们再来执行这个 USE
teaching 注意这就可以了。
我们可以,也可以来使用选择语句
好,这时我们这个 登录用户
test1 就拥有了对 teaching 这个数据库的操作权限,并且我们赋予了一个
叫做拥有者的一个角色,那么 这个 teaching
就像是 test1 这个用户的数据库一样 如果我们要删除
数据库用户,或者是删除登录名,简单的方法
是重新启动企业管理器
[空白音频] 以
sa 登录,或者说
以管理员的身份来登录
首先要删除数据库用户名 展开数据库,找到
teaching、 找到 安全性、 找到用户,找到我们的
dbtest,单击右键 删除,好
这个数据库用户删除了啊
还可以删除这个数据库,这是 test1
创建的数据库 然后呢,在底下这个安全性里头展开
展开登录名,找到 test1
点右键删除 这样就把 test1
这个登录用户 彻底删除了