栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > DBA题库

为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限?

DBA题库 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限?

答: 出于安全原因需要这些权限。请考虑下列简单存储过程:

USE pubs
GO

Create PROCEDURE GeneralSelect @TableName SYSNAME
AS
EXEC (‘Select * FROM ‘ + @TableName)
GO

您可能希望您的存储过程发出一个与下面类似的调用:

USE pubs
EXEC GeneralSelect ‘authors’

但是,请考虑传送给存储过程的下列顺序:

USE pubs
EXEC GeneralSelect ‘authors Drop TABLE authors’

如果存储过程的创建者是 pubs 数据库中 db_owner 角色的成员,并且您的用户只需要对存储过程具有 EXECUTE ㄏ蓿蚋妹罱境?authors 表。SQL Server 通过要求用户证明具有对数据库对象(通过动态 SQL 语句引用的)的正确权限来保护数据免受未授权的操作。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278043.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号