📜  sql server 角色和用户 - SQL (1)

📅  最后修改于: 2023-12-03 15:05:17.897000             🧑  作者: Mango

SQL Server 角色和用户

简介

在 SQL Server 中,角色和用户是管理和控制数据库中访问权限的重要概念。通过定义角色和用户,可以灵活地掌控数据库中的数据安全。

角色是一组权限的集合,需要包含一组用户才能起作用。用户则用于识别连接到数据库的具体个体,并指示该个体是否有特定权限。通常情况下,将用户分配给角色,并在角色上授权的权限将自动映射到用户上。

SQL Server 角色

SQL Server 中拥有以下四种角色:

数据库角色

数据库角色是当前数据库中的一组权限。可以将特定操作的一组权限赋予特定用户或默认用户,以便在数据库中执行特定操作。

数据库默认角色包括:

  • db_owner:拥有对数据库的完全控制权限。
  • db_accessadmin:可以管理数据库级别的访问权限。
  • db_securityadmin:可以管理数据库级别的安全性。
  • db_ddladmin:可以管理数据库级别的 DDL 语句。
  • db_backupoperator:可以备份和还原数据库。
  • db_datareader:可以读取所有用户表、视图和存储过程。
  • db_datawriter:可以插入、更新和删除所有用户表。
服务器角色

服务器角色是适用于整个 SQL Server 实例的角色集。可以将服务器角色分配给登录名或其他服务器角色,以便在服务器层级上管理安全性。

服务器默认角色包括:

  • sysadmin:拥有对服务器的完全控制权限。
  • securityadmin:可以管理服务器级别的安全性。
  • serveradmin:可以管理服务器的配置。
  • setupadmin:可以管理 SQL Server 安装。
  • processadmin:可以管理服务器进程。
  • diskadmin:可以管理磁盘文件。
  • dbcreator:可以创建、更改和删除数据库。
  • bulkadmin:可以执行大容量操作。
应用程序角色

应用程序角色是为应用程序中的特定功能定义的一组权限。应用程序必须明确地请求使用应用程序角色。

工作组角色

工作组角色是 SQL Server 分发数据库中的一组权限。可以将工作组角色分配给用户或其他工作组角色。

SQL Server 用户

SQL Server 中拥有以下三种用户:

登录名

登录名是在 SQL Server 实例上定义的,用于识别和验证连接的用户。通过 SQL Server Management Studio 创建登录名,默认会将该登录名分配给“public”数据库角色。

数据库用户

数据库用户是在每个数据库中定义的,用于授予数据库访问权限的实体。可以将登录名分配给数据库用户,并在数据库角色上分配该数据库的权限。

应用程序用户

应用程序用户通常是登录名的子集,用于指示特定应用程序中的连接到数据库的具体个体。

操作

SQL Server 中可以使用以下命令操作角色和用户:

创建角色
CREATE ROLE roles_name;
删除角色
DROP ROLE roles_name;
给角色授权
GRANT SELECT ON tablename TO roles_name;
收回角色授权
REVOKE SELECT ON tablename FROM roles_name;
创建登录名
CREATE LOGIN login_name WITH PASSWORD='password';
创建数据库用户并分配角色
USE your_database;
CREATE USER user_name FOR LOGIN login_name;
ALTER ROLE roles_name ADD MEMBER user_name;
删除登录名
DROP LOGIN login_name;
删除数据库用户
USE your_database;
DROP USER user_name;