📅  最后修改于: 2023-12-03 15:05:17.897000             🧑  作者: Mango
在 SQL Server 中,角色和用户是管理和控制数据库中访问权限的重要概念。通过定义角色和用户,可以灵活地掌控数据库中的数据安全。
角色是一组权限的集合,需要包含一组用户才能起作用。用户则用于识别连接到数据库的具体个体,并指示该个体是否有特定权限。通常情况下,将用户分配给角色,并在角色上授权的权限将自动映射到用户上。
SQL Server 中拥有以下四种角色:
数据库角色是当前数据库中的一组权限。可以将特定操作的一组权限赋予特定用户或默认用户,以便在数据库中执行特定操作。
数据库默认角色包括:
服务器角色是适用于整个 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;