六、SQL Server数据库用户管理

1 SQL Server数据库——登录名

  • 登录名:用于连接到SQL Server服务器
  • 登录名为"sa"的用户可以连接到SQL Server服务器,然而,"sa"是超级管理员,可以操作对象管理器中的所有的数据库和数据库对象,会对数据库带来一定的安全隐患。
  • 所以,需要创建不用权限的用户,来管理和操作数据库
    请添加图片描述

1.1 创建登录名(使用视图)

1.1.1 新建登录名:选择"Windows身份验证"

请添加图片描述
请添加图片描述

1.1.1 如何查看本机账户
控制面板-》用户账户-》管理其他账户-》会有”管理员“以及其它用户。
后面选用图中的"newUser"新建登录名。
请添加图片描述

1.1.2 建立登录账户

先输入"newUser",然后点击“检查名称”,就会自动更新补全名称。
请添加图片描述
请添加图片描述
在这里插入图片描述
单击对象管理器刷新之后,就可以在"登录名"下看到刚刚创建的登录名。
请添加图片描述

1.1.3 测试登录新账户

  1. 断开服务器连接,再重新建立连接。选择"Windows身份验证",但是此时用户名还不是我们刚刚的新建的登录名,可以通过"Ctrl+Alt+Delete "来切换用户(切换的时间有点长)。
  2. 切换成功之后就可以用新用户登录。

请添加图片描述
请添加图片描述

1.1.2 新建登录名:选择"SQL Server身份验证"

请添加图片描述
注意下面几个选项的功能。
请添加图片描述
这里不勾选密码相关的选项,并默认数据库为"master"数据库。
请添加图片描述
创建成功之后,刷新登录名,就可以看到刚刚创建的"PbUser"登录名了。
请添加图片描述

然后关闭当前连接,重新连接服务器,选择"PbUser"登录名进行登录。请添加图片描述

请添加图片描述

1.2 创建登录名(使用SQL语句)

语法
CREATE LOGIN <登录名> WITH PASSWORD=<'登录密码'>
--创建登录名
use master      --当前指向的要操作的数据库
GO

--登录名:PbMaster,密码:123456
CREATE LOGIN PbMaster WITH PASSWORD = '123456'
GO
  • SQL语句执行成功之后,可以查看到登录名“PbMaster”已存在。
    请添加图片描述

2 SQL Server数据库——用户名

  • 用户名:SQL Server的使用者
  • 每个用来登录SQL Server的登录名都是一个用户
  • 同一个数据库可以拥有多个用户
    请添加图片描述
  • 同一个用户也可以访问多个数据库
    请添加图片描述

请添加图片描述

2.1 创建用户名(使用视图)

  • 在“sa”登录名下,新建用户名(也是登录名)Admin。
    请添加图片描述
  • 在“用户映射”中,设置Admin能访问DemoDB、master数据库。
    请添加图片描述
  • 用户名创建成功。
    请添加图片描述
  • 用户名创建成功之后,分别到DemoDB和master数据库,可以查看到用户列表中已经有“Admin”。
    请添加图片描述

请添加图片描述

2.2 创建用户名(使用SQL语句)

语法
CREATE USER <数据库用户名> FOR LOGIN <登录名>
--创建数据库用户
use DemoDB     --指向当前操作的数据库
GO

--用户名:MasterDBUser
CREATE USER MasterDBUser FOR LOGIN PbMaster
GO

使用PbMaster登录名连接数据库之后,可以到DemoDB数据库的用户中看到,已存在MasterDBUser用户。
请添加图片描述
请添加图片描述

3 SQL Server数据库用户——赋予权限

  • sa用户登录下,可以看到数据库DemoDB下的两张表
  • Admin用户登陆下,无法看到数据库DemoDB下的两张表
  • 原因就是sa用户有权限,而Admin用户没有权限。
    请添加图片描述
    请添加图片描述

3.1 为用户赋予权限(使用视图)

3.1.1 添加特定对象

给Admin添加特定对象:DemoDB数据库中的表

  • 在sa用户登录状态下,在数据库DemoDB下找到用户Admin,右击-》属性
    请添加图片描述
  • 找到“安全对象”,点击“搜索”,选择添加“特定对象”。
    请添加图片描述
  • “对象类型”选择“表”。
    请添加图片描述
  • 然后“浏览”DemoDB数据库中的表,选择要添加的表。
    请添加图片描述
    请添加图片描述
  • 添加成功之后,就可以看到Admin的安全对象列表增加了刚刚添加的对象。
    请添加图片描述

3.1.2 添加特定类型的所有对象

给Admin添加特定类型的所有对象:DemoDB数据库的所有表
请添加图片描述
请添加图片描述
请添加图片描述

3.1.3 添加属于该架构的所有对象

给Admin添加sys架构下的所有对象:DemoDB数据库中的表
请添加图片描述

  • “安全对象”列表中会展示当前sys架构下的所有对象,这里选择DemoDB的db.table1。
    请添加图片描述
  • 并给Admin用户授予对表dbo.table1的“插入”、“选择”权限。
    请添加图片描述
    请添加图片描述
  • 添加成功之后,使用Admin用户登录。登录之后可以看到DemoDB数据库下的一张表 dbo.dbo.table1。表右击可以“选择前1000行”、“编辑前200行”。
    请添加图片描述
  • “编辑前200行”-》可以成功插入一条数据“id 为0,name为小王”。
    请添加图片描述
  • 此时如果修改该数据“id 为1”,则会报错;如果删除该数据,也会报错。因为,并未授予Admin用户“修改”、“删除”表中数据的权限。
    请添加图片描述
    请添加图片描述

3.2 对用户赋予权限和回收权限(使用SQL语句)

3.2.1 授予权限

语法
GRANT <操作权限1,操作权限2,...> ON <表名> TO <用户名>
--为数据库DemoDB的用户MasterDBUser,授予对表userInfo 的“选择”、“插入”、“修改”的操作权限

use DemoDB      --指向当前操作的数据库
GO

GRANT SELECT,INSERT,UPDATE ON userInfo TO MasterDBUser
GO

SQL语句执行成功之后,就可以查看用户MasterDBUser的属性,看到其安全对象为UserInfo表,并授予了对UserInfo表的“选择”、“插入”、“更新”权限。
请添加图片描述
请添加图片描述

3.2.2 回收权限

语法
REVOKE <操作权限1,操作权限2,...> ON <表名>TO <用户名>
--将用户MasterDBUser对数据库DemoDB中,表userInfo的UPDATE权限进行回收

USE DemoDB      --指向当前操作的数据库
GO

REVOKE UPDATE ON userInfo TO MasterDBUser
GO

SQL语句执行成功之后,用户MasterDBUser的属性,看到其安全对象为UserInfo表,只有对UserInfo表的“选择”、“插入”权限。
请添加图片描述
请添加图片描述

4 SQL Server数据库——角色

什么是角色
就是事先定义好的一组权限

服务器角色:数据库服务器方面的控制权限
1、 例如创建、修改、删除数据库,管理磁盘文件,添加或删除数据库连接等等。
2、服务器级别的对象,只能包含登录名。
数据库用户角色:数据库中数据的控制权限

√ 数据库级别的一个对象,只能包含数据库用户名
√ 例如可以访问哪个数据库,可以访问哪个数据库中的哪些数据表,那些视图,哪些存储过程等等
√ 对哪些数据表执行哪些操作记员是插入操作还是更新操作

固定数据库角色
√一组sql server预定义的数据库角色√具有数据库级别的管理权限
自定义数据库角色
√当固定数据库角色不能满足要求的时候,可以自定义数据库角色

数据库的所有者:–dbo
1、出现在每个数据库中
2、登录名sa,自动映射为数据库用户dbo

4.1 服务器角色

角色名描述
bulkadmin运行bulk语句,该语句可将文本文件内的数 据导入到SQL Server2008中
dbcreator创建、更改、删除和还原任何数据库
diskadmin管理磁盘文件
processadmin管理sql server中运行的进程
sccuritygdmin管理和审核登录账户
serveradmin设置服务器范围的配置
setupadmin可以添加和删除连接服务器,并可以执行某 些系统存储过程
sysadmin可以在服务器引擎中执行任何活动
public两大特点:一、初始状态时没有权限 二、所有的数据库用户都是它的成员

4.2 数据库用户角色

角色名描述
db_owner执行所有的配置活动和维护活动, 以及授予或取消取数据库对象上的 select, insert, update
db_accessadminWindows登录账户
db_datareader读取数据库中所有用户表中的数据
db_datawriter向来自数据库中所有用户表中添 加,更新和删除数据
db_ddladmin运行任何数据库义语言命令
db_securityadmin管理数据库的安全,可以修改角色 成员身份和管理权限
db_backupoperator可以备份数据库
db_denydatareader不能查看数据库中用户表的任何数据
db_denydatawriter不能向用户表中添加,更新或删除任 何数据
public特殊的固定数据库用户,每个数据库 用户都属于public数据库角色

public数据库角色特点:
1、捕获数据库中用户的默认权限
2、所有用户、角色或组默认属于public角色
3、无法将用户、组或角色指派给它,因为默认情况 下它属于该角色
4、不能被删除

  • 15
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值