SQL SERVER 2005 存储过程签名实现

SQL Server 2005 存储过程签名
本文介绍如何在SQL Server 2005中为存储过程T_1创建签名,包括创建主密钥、证书、用户及权限分配等步骤,并通过示例演示整个过程。
SQL SERVER 2005 存储过程签名实现

use tempdb
go

-- 创建测试存储过程
CREATE PROCEDURE [dbo].[T_1]
AS
BEGIN
    SET NOCOUNT ON;
    exec ('SELECT * from dbo.User_Log')
END

GO

-- 创建数据库主密钥,以使用证书
create MASTER KEY ENCRYPTION  BY PASSWORD = 'password'
go

-- 创建证书
CREATE CERTIFICATE c_T1
WITH SUBJECT = 'exec t1 select table t1',
START_DATE = '01/01/2008' , EXPIRY_DATE = '12/31/2018'
go

-- 用证书对存储过程签名
add signature to t_1 by certificate c_T1;
GO

-- 用证书创建用户
create user u_T1 from certificate c_T1;
go

-- 对证书用户进行授权(这里是对表的select权限)
grant select on dbo.User_Log to u_T1
go

-- 授权“用户1”可执行 t_1 存储过程
grant exec on dbo.t_1 to 用户1
go

-- 测试 --
execute as login = '用户1';exec dbo.t_1;revert;
go

-- delete test data --
DROP PROC dbo.t_1
DROP CERTIFICATE c_T1
DROP USER u_T1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值