gpt4 book ai didi

sql-server-2008 - 加密 SQL Server 中的列

转载 作者:行者123 更新时间:2023-12-04 05:32:18 25 4
gpt4 key购买 nike

我有一张 table TblUserLogin带列LoginID int , Password varchar(50) , LoginUserName varchar(150) , Designation varchar(100) .

我的要求是,无论何时我们使用 select对该表的声明我们能够看到输入的密码(这是敏感信息)。

有什么方法可以加密密码列,以便我们在使用时使用 select声明信息将以加密方式查看并且不会影响访问密码列或插入新密码的代码?

简而言之,当“使用 select 语句从 Management Studio 访问时,密码列显示为加密,但以编程方式访问时,它返回实际的未加密密码”。

最佳答案

试试这个:

CREATE Procedure [dbo].[EncryptPasswd]
@user_id int,
@username varchar(255),
@passwd varchar(255)
As
Begin
Declare @res varbinary(2000)

IF NOT EXISTS(select * from sys.symmetric_keys where name='##MS_DatabaseMasterKey##')
CREATE MASTER KEY ENCRYPTION
BY PASSWORD = 'xyz@123'


IF NOT EXISTS(select * from sys.certificates where name='EncryptTestCert')
CREATE CERTIFICATE EncryptTestCert
WITH SUBJECT = 'xyz@123'

IF NOT EXISTS(select * from sys.symmetric_keys where name='TestTableKey')
CREATE SYMMETRIC KEY TestTableKey
WITH ALGORITHM = TRIPLE_DES ENCRYPTION
BY CERTIFICATE EncryptTestCert

OPEN SYMMETRIC KEY TestTableKey DECRYPTION
BY CERTIFICATE EncryptTestCert


INSERT INTO Users(user_id,username,passwd)
SELECT @user_id,@username,ENCRYPTBYKEY(KEY_GUID('TestTableKey'),@passwd)
END

每当您将新用户插入用户表时,请使用此 sproc。因此这将加密密码并插入。

关于sql-server-2008 - 加密 SQL Server 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12420161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com