目录

  • 1 SQL Server数据库——登录名
    • 1.1 创建登录名(使用视图)
      • 1.1.1 新建登录名:选择"Windows身份验证"
      • 1.1.2 新建登录名:选择"SQL Server身份验证"
    • 1.2 创建登录名(使用SQL语句)
  • 2 SQL Server数据库——用户名
    • 2.1 创建用户名(使用视图)
    • 2.2 创建用户名(使用SQL语句)
  • 3 SQL Server数据库用户——赋予权限
    • 3.1 为用户赋予权限(使用视图)
      • 3.1.1 添加特定对象
      • 3.1.2 添加特定类型的所有对象
      • 3.1.3 添加属于该架构的所有对象
    • 3.2 对用户赋予权限和回收权限(使用SQL语句)
      • 3.2.1 授予权限
      • 3.2.2 回收权限
  • 4 SQL Server数据库——角色
    • 4.1 服务器角色
    • 4.2 数据库用户角色

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      --指向当前操作的数据库
GOGRANT 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      --指向当前操作的数据库
GOREVOKE 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_accessadmin Windows登录账户
db_datareader 读取数据库中所有用户表中的数据
db_datawriter 向来自数据库中所有用户表中添 加,更新和删除数据
db_ddladmin 运行任何数据库义语言命令
db_securityadmin 管理数据库的安全,可以修改角色 成员身份和管理权限
db_backupoperator 可以备份数据库
db_denydatareader 不能查看数据库中用户表的任何数据
db_denydatawriter 不能向用户表中添加,更新或删除任 何数据
public 特殊的固定数据库用户,每个数据库 用户都属于public数据库角色

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

六、SQL Server数据库用户管理相关推荐

  1. SQL Server2008数据库用户管理 (第三部分)

    3.1创建SQL Server数据库登录名 打开数据库管理器->安全性->登录名->右键选择新建登录名 1)Windows身份验证 选中Windows身份验证,点击搜索,在下面的提示 ...

  2. SQL Server数据库的管理及维护

    理论: 首先打开 SSMS(SQL server Management Studio) 使用SSMS可以实现好多功能:注册服务器,连接到数据库引擎,配置服务器的属性,创建对象,管理文件和文件组,附加或 ...

  3. [译]几个步骤来删除SQL Server数据库用户

    数据库的安全是大多数数据库管理者的重大问题之一.数据库管理者经常恢复或备份数据库,这是一个很常见的场景,但事实是,成功地恢复你的数据库的新版本后,你要删除当前用户. 也许你以为只是扩大用户节点和删除的 ...

  4. MS SQL Server数据库在线远程管理工具

    MS SQL Server数据库在线管理工具 MS SQL Server数据库以其优异的性能,被广泛使用,特别是政务,医疗行业.但是远程维护挺不方便的,目前有一款基于WEB的工具TreeSoft数据库 ...

  5. 《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的备份方式...

    数据备份一直被认为数据库的生命,也就是一个DBA所要掌握的主要技能之一,本篇就是介绍SQL Server备份原则,SQL Server数据库分为数据文件和日志文件.为了使得数据库能够恢复一致点,备份不 ...

  6. 了解SQL Server数据库静态数据及其如何适合数据库生命周期管理

    什么是静态数据 (What is static data) Static data (aka Code, Lookup, List or Reference data), in the context ...

  7. Sql Server数据库中的用户及权限配置,保障数据库安全

    最近有个朋友的网站被攻击,漏洞是比较过时的SQL注入,在帮修复的过程中,发现数据库用的是超级管理员用户sa,提高数据安全性和服务器安全性的措施之一便是降低web应用数据库用户的权限,回顾了一下Sql ...

  8. SQL SERVER数据库中GUEST用户

    SQL SERVER数据库中GUEST用户 问题 谁邀请这些客人(guest)到我的数据库中?你可知道在你的SQL SERVER数据库中还存在guest用户?你可知道SQL SERVER 需要gues ...

  9. 工资管理信息系统java_java+sql server,工资管理信息系统,源程序+数据库+报告

    [实例简介] java+sql server,工资管理信息系统,源程序+数据库+报告 [实例截图] [核心代码] 工资管理信息系统 └── 工资管理信息系统 ├── gongzigl_log.ldf ...

最新文章

  1. 智源社区票选2021 AI十大进展出炉!
  2. JS DOM 对象
  3. 1936年发表理想计算机的论文,科学网—图灵1936年论文解读(1):可计算性 - 柳渝的博文...
  4. Java趣味分享:try/finally
  5. oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows)
  6. 安卓Android面试题大全
  7. 编译liblinear
  8. 数据结构关键路径_2021年厦门大学考研丨能源学院845数据结构参考书目推荐
  9. 更复杂的缓存穿透怎么解决
  10. jvisualVm用法
  11. 自动驾驶 4-4 纵向车辆建模Longitudinal Vehicle Modeling
  12. 176.第二高的薪水
  13. 凸优化第三章凸函数 3.6关于广义不等式的凸性
  14. python爬虫实例——中国电影票房
  15. freemarker导出excel单元格内换行
  16. 8421码到5421码的转换_8421BD码转换成5421BCD码.doc
  17. 2013年字库产业感悟及资料书单
  18. idea配置Camunda Modeler
  19. 消息认证码和单向散列函数
  20. ~ 按位取反运算解析

热门文章

  1. eslint常用规则配置和解释
  2. JavaScript--JQuery事件 当网页元素加载完成后再去执行事件
  3. 华为低端交换机堆叠配置
  4. 机器学习中常见的损失函数及其应用场景
  5. Python编程:Django初步学习_彭世瑜_新浪博客
  6. C++ 合成2048小游戏
  7. python数据数据存储-五种使用python储存数据的方式
  8. C语言中字符串相关的拷贝函数
  9. Python爬虫入门教程【3】:美空网数据爬取
  10. 代码改了,开发环境没问题,但是部署到测试环境,却没有效果?原来是它在作怪(浏览器缓存)