怎样实现对SQL数据库进行加密?请大家给些建议和方法,进者均有分!

morou_007 2005-09-01 08:57:19
我想实现对SQL数据库进行加密,数据库是应用在winform中的,但是现在还没有头绪(当然不只是对登陆用户的密码进行加密),请大家提提建议和方法!
...全文
721 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
emanlee 2006-06-27
  • 打赏
  • 举报
回复
to jinjazz(近身剪(充电中...)) ( ) 信誉:100
数据库安全不是这么搞得,你还是学学dba方面的东西,sql数据库的安全性是足够了
----------------------------------------------------------------------------------

倘若是c/s模式,客户可以看到你的*.mdf数据库文件,把这数据库文件拷贝到其他pc上,注册到企业管理其中,一切都可以看到,这个你试过了吗?
cdo 2005-09-01
  • 打赏
  • 举报
回复
帮顶一下.
morou_007 2005-09-01
  • 打赏
  • 举报
回复
领导只是给我下达任务,让我实现加密功能,并没有说用什么途径和方法,所以对于数据库的知识的欠缺只能是我无知,而于领导毫无关系啊!况且到这里发问的人都是“因为知识欠缺,所以发问”
morou_007 2005-09-01
  • 打赏
  • 举报
回复
我的领导只是让我实现这个功能,但他并没有说用什么途径,方法,所以我对数据库的知识不懂那只是我的无知,而与领导无关!因为欠缺知识,所以才来发问!
morou_007 2005-09-01
  • 打赏
  • 举报
回复
SQL-Server能辨别且使用被自己加密的数据库文件:
如果在资源管理器中对数据库文件进行加密,则会提示"该文件正在使用中",所以,必须停止SQL-Server服务器,然后再进行加密,但加密后再启动SQL-server服务器,刚刚加密的文件将无法使用,SQL企业管理其中显示为"置疑"数据库. 这就是所说的"SQL-Server无法辨别被用户加密的数据库文件."
lyb_abiandbel 2005-09-01
  • 打赏
  • 举报
回复
如果是不让打开数据库这些还是用数据库安全机制去解决,
如果只是对数据库字段操作,那当然是加密解密了。
家鸣 2005-09-01
  • 打赏
  • 举报
回复
加:密码字符串原文——加密——存储密文到字段

解:读取密文——解密——密码字符串原文
leeyeefeng2004 2005-09-01
  • 打赏
  • 举报
回复
system.secruity下面一搭子加密类~~~~DES,MD5,SHA等等~~
liduke 2005-09-01
  • 打赏
  • 举报
回复
觉得最简单的办法还是将数据加密后的密文存入到数据库中,要不就把数据库表加密
givenchy 2005-09-01
  • 打赏
  • 举报
回复
呵呵,楼上可爱。
jinjazz 2005-09-01
  • 打赏
  • 举报
回复
你不让他们打开不就可以了,真是脱了裤子放屁。数据库不是word文档,他又自己的安全机制,你们领导白痴不是他的错,你搞技术的跟着他白痴就说不过去了。你所碰到的问题,通过sql的安全配置都可以解决的,而不是异想天开的直接对数据库文件修改
TechEye 2005-09-01
  • 打赏
  • 举报
回复
人把数值加密后存进去,取出来后再解密不就行了,别人当然查询不了.
DanielTangram 2005-09-01
  • 打赏
  • 举报
回复
就像把密码字段加密成乱码一样,是能够实现的,加密流程如下

加:密码字符串原文——加密——存储密文到字段

解:读取密文——解密——密码字符串原文
morou_007 2005-09-01
  • 打赏
  • 举报
回复
刚才请示领导,领导说想实现客户可以用我们的数据库工作,但是他们不能够打开表(退一步,即使打开表也看不到正确的数据),修改表,删除表。也就是说我客户可以用我们的正常运行我们的管理系统但却不能对我们的数据库进行操作和查看。请问能实现吗?
morou_007 2005-09-01
  • 打赏
  • 举报
回复
我只是想实现只有指定的客户,经过我们的软件才可以看到数据,对其进行操作,其他用户未经许可(即解密)即使打开数据库,看到表格中的数据也不是正确的,而且这是一个单机版数据库,不是web程序中的,而且数据库没有sa密码,是windows nt 验证的。并且对文件加密我也会一点,MSN也看过,可能还是没有完全掌握吧,我目前不知道怎样对关键的字符加密,并且不影响数据的类型。
**还有,我想请问各位说的对关键“字段”加密中的字段是指关键“列”还是关键“字符串(字符)”啊?
flyingdream123 2005-09-01
  • 打赏
  • 举报
回复
不知道楼主这样做有何目的?
jinjazz 2005-09-01
  • 打赏
  • 举报
回复
数据库安全不是这么搞得,你还是学学dba方面的东西,sql数据库的安全性是足够了

Q : 數據庫安全管理范例!
主要解答者: zjcxc 提交人: zjcxc
感谢: zjcxc
审核者: pbsql 社区对应贴子: 查看
A :

首先,做好用户安全:

--简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)

1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql server和windows"--确定

2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码

3.删除用户:
BUILTIN\Administrators
<机器名>\Administrator --这个用户不一定有
这样可以防止用windows身份登陆SQL

4.设置进入企业管理器需要输入密码
在企业管理器中
--右键你的服务器实例(就是那个有绿色图标的)
--编辑SQL Server注册属性
--选择"使用 SQL Server 身份验证"
--并勾选"总是提示输入登录名和密码"
--确定

--经过上面的设置,你的SQL Server基本上算是安全了.
------------------------------------------------------------------------

其次,改默认端口,隐藏服务器,减少被攻击的可能性

SQL Server服务器
--开始
--程序
--Microsoft SQL Server
--服务器网络实用工具
--启用的协议中"TCP/IP"
--属性
--默认端口,输入一个自已定义的端口,比如2433
--勾选隐藏服务器

----------------------------------------------------------------------------
--管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)

--切换到你新增的用户要控制的数据库
use 你的库名
go

--新增用户
exec sp_addlogin 'test' --添加登录
exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户
exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限

--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go

--删除测试用户
exec sp_revokedbaccess N'test' --移除对数据库的访问权限
exec sp_droplogin N'test' --删除登录

---------------------------------------------------------------------------
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加
--添加用户:
exec sp_addlogin '用户名','密码','默认数据库名'

--添加到数据库
exec sp_grantdbaccess '用户名','数据库名'

--分本权限
grant insert,select,update,delete on table1 to public


-------------------------------------------------------------------
至于具体的安全设置和理论知道,参考SQL联机帮助
深山老翁 2005-09-01
  • 打赏
  • 举报
回复
我觉得全部加密有点不现实,写个加密算法加密重要字段就行了,System.Security.Cryptography,MSDN里有例子,可以看看.
还有可以去这里看看回答:http://61.186.252.131//Expert/topic/1866/1866394.xml?temp=.7181513
morou_007 2005-09-01
  • 打赏
  • 举报
回复
我知道数据加密,然后再解密,数据以明文形式传入数据库,可是怎么传入啊?在服务器运行的时候不能对加密数据进行操作啊!服务器怎么控制啊?还有我上面说过DES算法不行啊,那要用什么算法啊?
tangyong12 2005-09-01
  • 打赏
  • 举报
回复
如果仅仅是对数据进行加密并不难啊,weisunding说的那样就行。
加载更多回复(5)

110,578

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧