Jay*_*Jay 9 sql encryption sql-server-2005
使用SQL 2005
我创建了一个通过密码加密的主密钥,然后使用服务主密钥加密了主密钥
然后我创建了一个ASYMMETRIC_KEY用于加密我的SYMMETRIC_KEY我使用SA用户进行了SQL所有这一切,并作为域管理员登录到Windows服务器.
我的数据库中有一个用户只有我的数据库的dbo权限,然后我授予该用户对所有必要的存储过程的执行权限,我也拒绝对这些存储过程的视图定义.
存储过程给我带来麻烦,我在这里进行加密.这一切都在我的测试PC上的SQL2012上工作,但现在我在生产服务器上使用sql 2005创建它并且它失败了
open symmetric key
MYKEY_NAME_SYM decryption by Asymmetric key MYKEY_NAME_ASYM
set @ENCRYPTVARIABLE = (select ENCRYPTBYKEY(KEY_GUID('MYKEY_NAME_SYM'), @ENCRYPTCOLUMN))
close symmetric key MYKEY_NAME_SYM
Run Code Online (Sandbox Code Playgroud)
我收到的错误是:
Cannot find the symmetric key 'MKEY_NAME_SYM', because it does not exist or you do not have permission.
Run Code Online (Sandbox Code Playgroud)
所以我猜我在我的数据库中使用的用户没有权限,但是当我尝试授予权限时
GRANT
VIEW DEFINITION ON SYMMETRIC KEY::MKEY_NAME_SYM TO [myuser]
Run Code Online (Sandbox Code Playgroud)
我得到相同的错误找不到对称密钥或我没有权限.
小智 16
管理用户在脚本控制台中编写:
--Grant View
GRANT VIEW DEFINITION ON CERTIFICATE::[Certificate_Name] TO [user]
GRANT VIEW DEFINITION ON SYMMETRIC KEY::[EncryptionKey_Name] TO [user]
--Grant Control
GRANT CONTROL ON CERTIFICATE::[Certificate_Name] TO [user]
我需要切换 SQL 以使用 Windows 身份验证,因为唯一拥有权限的用户是域\管理员用户,这是我创建密钥的用户。
一旦我切换到 Windows 身份验证,我就能够授予密钥权限,一切都很好
| 归档时间: |
|
| 查看次数: |
19401 次 |
| 最近记录: |