SQL 给视图赋权限

  • 授予表权限
  • 创建视图
  • 授予视图权限
  • 测试权限
复杂程度: 数据要求:

您可以使用 SQL 在企业级地理数据库中创建表和要素类的视图。

本主题中的示例显示如何使用 Microsoft SQL Server 中创建的简单视图来限制用户对特定列的访问。该示例基于具有以下定义的表:

CREATE TABLE employees(
  emp_id integer not null, name nvarchar(32), department smallint not null, hire_date datetime2 not null ); 

授予表权限

如果创建视图的用户不是该视图所依据的表的所有者,则表所有者必须至少授予视图创建者从表中进行选择的权限。

在本例中,视图所依据的表 (employees) 归用户 gdb 所有。创建视图的用户是 rocket。

GRANT SELECT 
 ON employees 
 TO rocket; 

创建视图

在本例中,用户 rocket 根据 employees 表创建视图,以将访问限制为部门编号为 201 的记录:

CREATE VIEW view_dept_201
 AS SELECT emp_id, name, hire_date FROM gdb.employees WHERE department = 201; 

授予视图权限

您可将视图权限授予特定用户,而无需授予这些用户对基表 (employees) 的访问权限。在本例中,将视图 view_dept_201 的 SELECT 权限授予用户 mgr200:

GRANT SELECT
ON view_dept_201
TO mgr200; 

测试权限

以 mgr200 身份登录并从 view_dept_201 中选择记录:

EXECUTE AS mgr200;

SELECT * FROM rocket.view_dept_201; emp_id name hire_date 112 LOLLI POP 06/30/2007 134 VAN CHIN 10/15/2007 150 DON GUN 03/01/2009

转载于:https://www.cnblogs.com/Javi/p/6860212.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值