T-SQL 知识量:16 - 67 - 243
在T-SQL中,使用GRANT语句授予用户或角色对数据库对象的权限。GRANT语句的基本语法如下:
GRANT permission_type ON object_name TO principal;
其中,permission_type是要授予的权限类型,例如SELECT、INSERT、UPDATE等;object_name是要授权的数据库对象,例如表、视图、存储过程等;principal是要授予权限的用户或角色。
以下是一个示例,演示如何使用GRANT语句授予对表的SELECT权限:
GRANT SELECT ON TableName TO UserName;
上述示例将授予名为"UserName"的用户对名为"TableName"的表执行SELECT查询的权限。
除了单个对象的权限外,GRANT语句还可以同时授予多个对象或整个数据库的权限。以下是一个示例,演示如何使用GRANT语句授予对整个数据库的SELECT权限:
GRANT SELECT ON DATABASE::DatabaseName TO UserName;
上述示例将授予名为"UserName"的用户对名为"DatabaseName"的整个数据库执行SELECT查询的权限。
注意:GRANT语句只能授予权限,而不能撤销或回收权限。如果需要撤销或回收权限,可以使用REVOKE语句。
在T-SQL中,使用REVOKE语句来收回授予给用户或角色的权限。REVOKE语句的基本语法如下:
REVOKE permission_type ON object_name FROM principal;
其中,permission_type是要收回的权限类型,例如SELECT、INSERT、UPDATE等;object_name是要收回权限的数据库对象,例如表、视图、存储过程等;principal是要收回权限的用户或角色。
以下是一个示例,演示如何使用REVOKE语句收回对表的SELECT权限:
REVOKE SELECT ON TableName FROM UserName;
上述示例将收回名为"UserName"的用户对名为"TableName"的表执行SELECT查询的权限。
除了单个对象的权限外,REVOKE语句还可以同时收回多个对象或整个数据库的权限。以下是一个示例,演示如何使用REVOKE语句收回对整个数据库的SELECT权限:
REVOKE SELECT ON DATABASE::DatabaseName FROM UserName;
上述示例将收回名为"UserName"的用户对名为"DatabaseName"的整个数据库执行SELECT查询的权限。
在T-SQL中,使用DENY语句来禁止用户或角色对数据库对象的特定权限。DENY语句的基本语法如下:
DENY permission_type ON object_name TO principal;
其中,permission_type是要禁止的权限类型,例如SELECT、INSERT、UPDATE等;object_name是要禁止权限的数据库对象,例如表、视图、存储过程等;principal是要禁止权限的用户或角色。
以下是一个示例,演示如何使用DENY语句禁止用户对表的SELECT权限:
DENY SELECT ON TableName TO UserName;
上述示例将禁止名为"UserName"的用户对名为"TableName"的表执行SELECT查询操作。
除了单个对象的权限外,DENY语句还可以同时禁止多个对象或整个数据库的权限。以下是一个示例,演示如何使用DENY语句禁止用户对整个数据库的SELECT权限:
DENY SELECT ON DATABASE::DatabaseName TO UserName;
上述示例将禁止名为"UserName"的用户对名为"DatabaseName"的整个数据库执行SELECT查询操作。
需要注意的是,DENY语句与REVOKE语句不同,DENY语句会永久禁止用户或角色的特定权限,而无法通过REVOKE语句收回该权限。因此,在使用DENY语句时需要格外谨慎,确保禁止了不必要的权限。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6