SqlServer2008实例52存储过程安全

本文介绍了SQL Server 2008中存储过程的安全措施,包括加密存储过程以保护源代码不被查看或篡改,以及使用`EXECUTE AS`关键字来指定执行时的安全上下文,确保权限控制的有效性。加密存储过程后,应保留源代码,因为已加密的文本无法轻易解密。同时,`EXECUTE AS`允许在不同权限上下文中运行存储过程,如调用者、编写者、指定登录名或拥有者,以实现更细粒度的权限管理。
摘要由CSDN通过智能技术生成

1.加密存储过程

    存储过程的T-SQL定义能在数据库中实现内容加密,这样就不能读取过程的定义。在后端使用SQL Server的软件开发商通常加密存储过程来防止客户端或竞争对手的篡改或逆向工程。如果你使用了加密,请确保保存了原始的T-SQL定义,因为以后不能再轻易地解密它(合法并且可靠的)。而且应该只在正式把它部署到生产环境之前才进行加密。
    要加密存储过程,可以在新存储过程的名字后面指定WITH ENCRYPTION:

USE AdventureWorks
GO

CREATE PROC dbo.usp_SEL_EmployeePayHistory
WITH ENCRYPTION
AS

SELECT EmployeeID,RateChangeDate,Rate,Payfrequency,ModifiedDate
FROM HumanResources.EmployeePayHistory

GO

一旦创建了WITH ENCRYPTION,就不能再看到过程的文本定义:

--查看过程的文本
EXEC sp_helptext usp_SEL_EmployeePayHistory

    加密能使用CREATE PROCEBURE或ALTER PROCEDURE来定义,但是要确保保存了你的源代码,因为既有的已加密文本不能被轻易解密。

2.使用EXECUTE AS 来指定过程的安全上下文

  WITH EXECUTE AS关键字允许你指定存储过程执行所在的安全上下文,覆盖存储过程调用者的默认安全。在这里,安全上下文是指用户执行存储过程的权限。
    可以在以下几个权限下执行存储过程:

  •     调用者的安全上下文:
  •     过程的编写者或最终修改者:
  •     指定的登录名&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值