首页 > 数据库 >16.1 SQL Server角色简介

16.1 SQL Server角色简介

时间:2023-01-30 21:46:24浏览次数:42  
标签:角色 数据库 用户 Server tiger 16.1 SQL 权限 mary

SQL Server角色

目录

简介

角色是一组权限。角色帮助简化权限管理。例如,可以将权限分组到一个角色中,并将用户添加到该角色中,而不是单独为用户分配权限:

  • 首先创建一个角色
  • 其次,为角色分配权限。
  • 第三步,向角色添加一个或多个用户。

SQL Server为提供了三种主要角色类型:

  • 服务器级角色–管理SQL Server上的权限,如更改服务器配置。
  • 数据库级角色–管理对数据库的权限,如创建表和查询数据。
  • 应用程序级角色–允许应用程序以其自己的、类似用户的权限运行。

对于每种类型,SQL Server提供两种类型:

  • 固定的服务器角色:是SQL server提供的内置角色。这些角色具有固定的权限集。
  • 用户自定义的角色:是为满足特定安全要求而定义的角色。

把用户添加到角色示例

首先,创建一个新LOGIN账号名为tiger:

CREATE LOGIN tiger
WITH PASSWORD='UyxIv.12';

然后,将当前数据库切换到BikeStores,并为tiger登录创建一个同名用户tiger:

Use BikeStores;

CREATE USER tiger
FOR LOGIN tiger;

然后,使用用户tiger连接到BikeStores数据库。tiger可以查看BikeStores数据库,但无法查看任何数据库对象。

此时,我们将用户tiger添加到db_datareader角色:

ALTER ROLE db_datareader
ADD MEMBER tiger;

db_datareader是一个固定的数据库角色。db_datareader角色允许所有成员从数据库中的所有用户表和视图读取数据。从技术上讲,它相当于以下GRANT语句:

GRANT SELECT 
ON DATABASE::BikeStores
TO tiger;

在本例中,DATABASE是一个类类型,它表示::后面的安全资源是一个数据库。以下是可用的类类型:

  • LOGIN
  • DATABASE
  • OBJECT
  • ROLE
  • SCHEMA
  • USER

最后,将连接切换到用户tiger并从销售订单表中查询数据:

SELECT * FROM sales.orders;

创建用户自定义角色

下面的示例创建一个新的用户和角色,授予该角色的权限,并向该角色添加一个用户。

首先将当前数据库切换到master,并且创建一个新登录账号mary:

USE master;

CREATE LOGIN mary 
WITH PASSWORD='XUjxse19!';

其次,将当前数据库切换到BikeStores,并为登录mary创建一个名为mary的同名新用户:

USE BikeStores;

CREATE USER mary 
FOR LOGIN mary;

第三步,在BikeStores数据库创建一个新角色,名为sales_report

CREATE ROLE sales_report;

在本例中,使用CREATE ROLE语句创建一个新角色。sales_report是角色名。

第四步,将Sales架构上的SELECT权限授予sales_report角色:

GRANT SELECT 
ON SCHEMA::Sales 
TO sales_report;

第五步,将用户mary添加到sales_report角色:

ALTER ROLE sales_report
ADD MEMBER mary;

最后,使用用户mary连接到BikeStores数据库。此时,用户mary只能看到Sales架构中的表。此外,用户mary只能从此Sales架构中的表中查询数据,因为用户mary是具有SELECT权限的sales_report角色的成员。

SELECT * from Sales.orders;

总结

  • 角色相当于是一组权限。
  • 使用CREATE ROLE语句创建新角色。
  • 使用ALTER ROLE…ADD MEMBER…语句将用户添加到角色中。

标签:角色,数据库,用户,Server,tiger,16.1,SQL,权限,mary
From: https://www.cnblogs.com/michaelshen/p/17077309.html

相关文章

  • 16.2 SQL Server创建角色
    SQLServer创建角色目录SQLServer创建角色简介示例1)创建新角色2)创建由固定数据库角色拥有的新角色3)检查角色简介角色是数据库级安全资源,是一组权限。要创建新角色,请使......
  • 16.3 SQL Server修改角色
    SQLServer修改角色目录SQLServer修改角色简介示例1)重命名角色2)向角色中添加成员3)从角色中移除成员简介ALTERROLE可以:重命名角色向角色中添加成员从角色中......
  • 17.1 SQL Server数据库邮件
    SQLServer数据库邮件目录SQLServer数据库邮件简介配置SQLServer数据库邮件使用数据库邮件发送邮件1)发送邮件示例2)发送带有查询结果的电子邮件简介数据库电子邮件可以......
  • SQL练习:UNION实现多张表的纵向合并
    左、内、右连接可以实现多表横向合并,而UNION关键字则可以实现多表纵向合并UNION:实现多表纵向合并(默认含去重功能)<sql查询语句1>UNION<sql查询语句2>UNION...UNION......
  • 16.4 SQL Server删除角色
    SQLServer删除角色目录SQLServer删除角色简介示例1)DROPROLE简单示例2)DROPROLE删除具有成员的角色简介语法:DROPROLE[IFEXISTS]role_name;DROPROLE无法删除拥......
  • 18.1 SQL Server阻塞
    SQLServer阻塞目录SQLServer阻塞简介示例简介当两个会话试图同时更新同一数据时,会发生阻塞。第一个会话锁定数据,第二个会话需要等待第一个会话完成并释放锁定。结果......
  • 18.2 SQL Server死锁
    SQLServer死锁目录SQLServer死锁简介示例简介死锁是一个并发问题,其中两个会话会阻止彼此的进程。第一个会话锁定了另一个会话想要访问的资源,反之亦然。下图说明了SQL......
  • mysql02
    mysqlday01课堂笔记1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 ......
  • PostgreSQL:查询数据表信息
    PostgreSQL14.0pgAdmin4Version5.7-- 0、序章要查询数据表信息,需要用到系统表或系统视图等,比如,pg_tables、pg_class、information_schema等。使用pgAdmin4......
  • Simple-Web-Server HTTP开源服务器库
    1下载网址​ ​​https://gitlab.com/eidheim/Simple-Web-Server​​2实现HTTP短连接默认的HTTP协议都是短连接,服务器返回响应报文,就会主动断开,测试发现,当前库不会主动断......