数据库|权限管理
  TEZNKK3IfmPf 2023年11月14日 26 0

问题描述

用户对数据的库的访问以及对数据库对象的操作都体现在权限上,具有什么样的权限,就能执行什么样的操作。权限对于数据库来说至关重要,它是访问权限设置中的最后一道安全措施,管理好权限是保证数据库安全的必要因素。

解决方案

在SQL Server中按照权限是否进行预定义,可以把权限分为预定义权限和自定义权限;按照权限是否与特定的对象有关,可以分为针对所有对象的权限和针对特殊对象的权限。

1)预定义和自定义权限

所谓预定义权限是在安装SQL Server过程完成之后,不必通过授予即拥有的权限。例如服务器角色和数据库角色就属于预定义权限,对象的所有者也拥有该对象的所有权限以及该对象所包含对象的所有权限。

自定义的权限是指需要经过授权或继承才能得到的权限,大多数的安全主体都需要经过授权才能获得对安全对象的使用权限。

2)所有对象和特殊对象的权限

针对所有对象的权限表示将针对SQL Server中的所有对象(例如CONTROL权限)都有的权限。针对特殊对象的权限是指某些权限只能在指定的对象上起作用。例如,INSERT仅可以用于表的权限,不可以是存储过程的权限;而EXECUTE只可以是存储过程的权限,不能作为表的权限等。

对于表和视图,拥有者可以授予数据库用户INSERT、UPDATE、DELETE、SELECT和REFERENCES共五种权限。在数据库用户要对表执行相应的操作之前,必须事先获得相应的操作权限。例如,如果用户想浏览表中的数据,首先必须获得拥有者授予的SELECT权限。

下表是一些常用的权限:

 

 

数据库

CREATE DATABASE、CREARE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE VIEW、CREATE TABLE、CREATE RULE、BACKUP DATABASE、BACKUP LOG

SELECT、DELETE、INSERT、 UPDATE、REFERENCS

SELECT、DELETE、INSERT、 UPDATE、REFERENCS

视图

SELECT、DELETE、INSERT、 UPDATE、REFERENCS

过程

EXECUTE、SYNONYM

表1-1 常用权限

对于权限的操作有:授予权限、撤销权限、拒绝权限。通过名字我们都不难理解每个操作的意义。接下来,我们具体看看每个权限的具体操作。

授予权限

Grant

{all|statement[权限名]}

To security_account[用户名]

撤销权限

Revoke{all|statement[权限名]}

From security_account[用户名]

拒绝权限

Deny {all|statement[权限名]}

To security_account[用户名]

* 拒绝权限只是在不收回用户权限前提下,禁止用户访问数据库中某对象的的一个操作。

END

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   41   0   0 权限java
  TEZNKK3IfmPf   2024年05月31日   26   0   0 sqlite数据库
  TEZNKK3IfmPf   2024年05月31日   29   0   0 数据库mysql
  TEZNKK3IfmPf   2024年05月17日   50   0   0 权限dremio
  TEZNKK3IfmPf   2024年05月31日   25   0   0 数据库mysql
TEZNKK3IfmPf