当前位置: 首页 > news >正文

SQL Server中账号权限

目录标题

      • 查看现有权限
      • 授予权限
      • 拒绝权限
      • 撤销权限
      • 角色管理

在SQL Server中管理账号权限主要通过以下几个关键步骤:

查看现有权限

可以使用系统视图来查看账号的权限,比如 sys.database_permissions 视图,示例查询如下:

SELECT 
    dp.class_desc,
    OBJECT_NAME(major_id) AS object_name,
    dp.permission_name,
    grantee_principal_name = grp.name,
    grantor_principal_name = gran.name
FROM 
    sys.database_permissions dp
JOIN 
    sys.database_principals grp ON dp.grantee_principal_id = grp.principal_id
JOIN 
    sys.database_principals gran ON dp.grantor_principal_id = gran.principal_id;

上述查询可以列出数据库中各权限的授予情况,包括权限作用的对象类别、对象名称、权限名称、被授权账号和授权者账号。

授予权限

使用 GRANT 语句来授予账号权限,常见的权限类型有 SELECTINSERTUPDATEDELETE 等。例如,要授予名为 testuser 的账号对名为 dbo.MyTable 的表的 SELECT 权限,可以执行以下语句:

GRANT SELECT ON dbo.MyTable TO testuser;

如果要授予对整个数据库的某种权限,比如授予 testuser 对数据库的 CREATE TABLE 权限:

GRANT CREATE TABLE TO testuser;

拒绝权限

使用 DENY 语句拒绝账号的某些权限,阻止其执行特定操作。例如,拒绝 testuserdbo.MyTableDELETE 权限:

DENY DELETE ON dbo.MyTable TO testuser;

撤销权限

使用 REVOKE 语句撤销之前授予的权限,例如撤销之前授予 testuserdbo.MyTableUPDATE 权限:

REVOKE UPDATE ON dbo.MyTable FROM testuser;

角色管理

SQL Server中有固定数据库角色和自定义角色,你可以将账号添加到角色中,通过管理角色权限来间接管理账号权限。

  • 添加账号到固定角色
EXEC sp_addrolemember 'db_datareader', 'testuser';

上述语句将 testuser 添加到 db_datareader 固定数据库角色,该角色成员拥有对数据库中所有用户表的 SELECT 权限。

  • 创建自定义角色并分配权限
CREATE ROLE my_custom_role;
GRANT SELECT, INSERT ON dbo.AnotherTable TO my_custom_role;
EXEC sp_addrolemember'my_custom_role', 'testuser';

这样,testuser 就拥有了对 dbo.AnotherTableSELECTINSERT 权限。

请根据实际情况,将示例中的账号名、表名等替换为你自己环境中的具体名称来管理账号权限。

http://www.dtcms.com/a/93894.html

相关文章:

  • std::string不是直接的 DATETIME类型,因此在插入数据库时,通常可以直接将这个字符串传递给数据库,它会自动将其转换为 DATETIME类型
  • 自动化浏览器的测试框架playwright 支持多种浏览器Chromium、Firefox 和 WebKit
  • OpenManus和OWL如何选?
  • 刷题记录(LeetCode 994.腐烂的橘子)
  • 使用ProcessBuilder执行FFmpeg命令,进程一直处于阻塞状态,一直没有返回执行结果
  • Pytorch学习笔记(十二)Learning PyTorch - NLP from Scratch
  • Springboot读取nacos配置
  • 从tensorflow导入keras失败?
  • deepseek本地部署并搭建个人知识库
  • AIP-192 文档
  • ROS2软件架构全面解析-rmw软件框架
  • 使用系统自带的磁盘清理工具清理c盘空间 以及手动删除临时文件
  • leetcode141.环形链表
  • 数据分析中的基线校正算法全解析:原理、实现与应用
  • 什么是Giteki认证?认证流程详解
  • 盾牌图鉴(死亡细胞)
  • Go 语言常见错误——控制结构
  • 前端知识点 --- border-Radius的四个角(css)
  • MSYS2:Windows 开发环境的技术革新
  • react + css 实现 椭圆布局
  • 赛逸展2025年重磅回归,科技盛宴再启新篇
  • Manus的开源替代者之一:OpenManus通用AI智能体框架解析及产品试用
  • MacOS 安装open webui
  • 数据类设计_图片类设计总结(常更新)
  • 快速入手-基于Django-rest-framework的mixins混合类简洁写法(六)
  • 【算法学习计划】贪心算法(上)
  • 单片机 - MSB先发的串行数据收发 知识点整理
  • 华宇TAS应用中间件与晓窗科技智慧校园管理一体化平台完成兼容互认证
  • 有关C++加密和自制简单加密程序。
  • 西门子 CPU 1513-1 PN TCP Server 接收字符串前多了一个问号