在sql server中可以把某个字段加密么? 急#!!!
在sql server中可以把某个字段加密么? 我得意思就是说通过某些设置,或者写加密代码.然后把某个字段加密.通过普通得select 语句查询这个字段显示出来得数据是乱码. 直接打开这个表看这个字段里得数据也是乱码.必须通过某个方式解密后才能看到正确得数据! 请问下高手sql server中有这种设置么?
------解决方案--------------------try:pwdencrypt()
------解决方案--------------------看错问题了,pwdencrypt()是单向加密函数,没有其他函数支持逆向解密,楼主只能自己写一个函数来加解密。
------解决方案--------------------回复人:wangtiecheng(不知不为过,不学就是错!)
自己写函数加密数据。
但对于数据量很大的情况,效率比较低。
比如:要求某个字段的值包含某个串,这种情况,要把所有此字段的数据解密都再比较。
---------------------------
可以把“某个串”加密之后再比较。
------解决方案--------------------否决一个字段查询的权限还是很方便的
语法
DENY select ON [表名] TO [用户名]
当然你也可以否决update insert delete references 之类的权限
------解决方案--------------------语法
DENY select ON [表名]([字段名]) TO [用户名]
------解决方案--------------------看不到明文,可以将被加密的字段的数据类型定义成binary或者其他的类型.
这样一来sa用户是看不见明文.只是用CAST转换,还是可以的.
问题是你要防止sa用户,那么就算你写了加密算法,sa用户不也可以使用你的解密算法来解密嘛.