前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库|权限管理

数据库|权限管理

作者头像
算法与编程之美
发布2020-02-13 17:49:11
1.4K0
发布2020-02-13 17:49:11
举报

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

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

解决方案

在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 常用权限

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

授予权限

代码语言:javascript
复制
Grant

{all|statement[权限名]}

To security_account[用户名]

撤销权限

代码语言:javascript
复制
Revoke{all|statement[权限名]}

From security_account[用户名]

拒绝权限

代码语言:javascript
复制
Deny {all|statement[权限名]}

To security_account[用户名]

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档