Always Encrypted如何避免系统管理员访问数据?客户端程序和数据库在同一机器上

%3CLINGO-SUB%20id%3D%22lingo-sub-2305053%22%20slang%3D%22zh-CN%22%3EHow%20does%20Always%20Encrypted%20prevent%20system%20administrators%20from%20accessing%20data%3F%20Client%20programs%20and%20databases%20are%20on%20the%20same%20machine%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2305053%22%20slang%3D%22zh-CN%22%3E%3CP%3EIf%20the%20client%20program%20and%20database%20are%20on%20the%20same%20machine%2C%20if%20my%20client%20program%20wants%20to%20access%20the%20database%20properly%2C%20the%20machine%20must%20have%20a%20certificate%2C%20but%20if%20the%20machine%20has%20a%20certificate%2C%20the%20administrator%20can%20add%20%3CSPAN%3EColumn%20Encryption%20Settings%20and%20Enabled%20when%20the%20SSMS%20is%20connected%3B%20This%20parameter%20to%20see%20clear%20text%2C%20if%20my%20program%20is%20CS%20client%20program%2C%20is%20not%20every%20computer%20that%20installs%20the%20client%20program%20need%20to%20import%20certificates%3F%20If%20so%2C%20can%20the%20computers%20that%20import%20certificates%20also%20be%20able%20to%20view%20clear%20text%20data%20if%20they%20install%20SSMS%20and%20add%20connection%20parameters%3F%20I%20think%20only%20my%20program%20can%20properly%20access%20the%20operating%20database%2C%20is%20there%20any%20way%3F%20Or%20is%20there%20any%20way%20to%20save%20a%20certificate%20or%20column%20master%20key%20into%20my%20software%20instead%20of%20to%20the%20current%20user%20or%20computer%3F%20%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2309358%22%20slang%3D%22en-US%22%3ERe%3A%20Always%20Encrypted%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86%E5%91%98%E8%AE%BF%E9%97%AE%E6%95%B0%E6%8D%AE%EF%BC%9F%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%A8%8B%E5%BA%8F%E5%92%8C%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9C%A8%E5%90%8C%E4%B8%80%E6%9C%BA%E5%99%A8%E4%B8%8A%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2309358%22%20slang%3D%22en-US%22%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CBLOCKQUOTE%3E%3CHR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F1040177%22%20target%3D%22_blank%22%3E%40liurui%3C%2FA%3E%26nbsp%3Bwrote%3A%3CBR%20%2F%3E%3CP%20data-unlink%3D%22true%22%3EHow%20does%20Always%20Encrypted%20prevent%20system%20administrators%20from%20accessing%20data%3F%26nbsp%3B%3C%2FP%3E%3CHR%20%2F%3E%3C%2FBLOCKQUOTE%3E%3CP%3EYou%20can%20not%20restrict%20the%20permission%20of%20a%20login%20with%20membership%20of%20SysAdmin%20role%20in%20any%20way%2C%20tht's%20not%20possible.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EOlaf%3C%2FP%3E%3C%2FLINGO-BODY%3E
New Contributor

如题,客户端程序和数据库在同一台机器上,如果我的客户端程序要正常访问数据库,那么这台机器必须有证书,但是如果这台机器有证书的话,管理员就可以在SSMS连接时添加Column Encryption Setting = Enabled;这个参数来查看明文了,如果我的程序是CS客户端程序的化,是不是每台安装客户端程序的电脑都需要导入证书?如果是的话,那么这些导入证书的电脑如果安装上SSMS并加上连接参数是不是就也可以查看明文数据了? 我想只能我的程序才可以正常访问操作数据库,有没有什么办法?或者说有没有什么办法把证书或者列主密钥存到我的软件里而不是存到当前用户或者计算机里?

2 Replies

 


@liurui wrote:

How does Always Encrypted prevent system administrators from accessing data? 


You can not restrict the permission of a login with membership of SysAdmin role in any way, tht's not possible.

 

Olaf

并不是要限制系统管理员的登录权限,而是想阻止系统管理员查看明文。有没有什么办法?比如打开SSMS时如果想要查看明文必须输入一个加密密钥,否则只能查看密文。把这个加密密钥存储以纯文本形式存储在应用软件中类似的方案。