以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  SQL 动态连接字符串 动态用户名 直接操控SQL  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=49969)

--  作者:打错潇洒
--  发布时间:2014/4/26 19:33:00
--  SQL 动态连接字符串 动态用户名 直接操控SQL
狐表涉及的到内容之深 真的难以想象。
我一直在为直接连接数据库,可能不安全,一直再找,具有可以变动的连接字符串解决方案,今天终于有了苗头,特地拿出来与大家讨论一下,希望有关高手能提供更强大的一些SQL语句

Dim cmd As New SQLCommand
Dim Count As String
cmd.C
\'cmd.CommandText = "create login TestUser1 With password=\'1232\'" \'创建用户名称
\'cmd.CommandText = "use [csf] GRANT INSERT,ALTER,UPDATE ON [dbo].[Tables1] TO [test1]" \'设置权限
\'cmd.CommandText = "alter login TestUser1 With password=\'1234\' old_password=\'1232\'" \'修改用户密码
\'cmd.CommandText = "alter login TestUser1 with name = test1 go alter login test1 disable" \'修改用户名
\'cmd.CommandText = "drop login test1" \'删除登录名
\'cmd.CommandText = "USE [csf] CREATE USER [test1] FOR LOGIN [test1]"  \'用户映射数据库
Count= cmd.ExecuteScalar()
Messagebox.Show( "总共" & Count & "行!")

以上的案例如果结合socket,个人觉的在安全性上又会有很高的进步。
个人觉得 这个连接方式可以有效的预防 连接字符串 或者帐号被盗用的可能性
结合上述,提供动态的连接字符串。安全性我想应该就没有问题了。
相关的高手评价一下这种方式可可用性?
[此贴子已经被作者于2014-4-27 14:17:58编辑过]

--  作者:有点甜
--  发布时间:2014/4/27 10:49:00
--  

 看这里 http://msdn.microsoft.com/zh-cn/library/ms187965.aspx

 


--  作者:打错潇洒
--  发布时间:2014/4/27 14:21:00
--  
自己顶一个
--  作者:有点甜
--  发布时间:2014/4/27 14:30:00
--  

 不错,顶一顶,但是,你需要这样做:你需要把用户名发送到服务器那里,服务器去创建用户,然后返回用户名和密码,客户端用这个用户名和密码登陆。

 

 也就是你需要有一个中间人


--  作者:kunmails
--  发布时间:2014/4/27 15:10:00
--  

我感觉不太好,首先你要字符串链接上SQL服务,你已经链接上了,又要创建用户,这个多此一举!

频繁的去数据库创建用户,再赋予角色,最后再删除,这个安全性更差,感觉有很多弊病·····

 

个人看法~~·


--  作者:逛逛
--  发布时间:2014/4/27 16:43:00
--  

俺觉得没有必要,你这样做的话,就必须要一个具有相对权限的用户, 如果这个用户存储在项目中,风险更高。

 

如果用你说的结合socket ,就必须要做一个服务端。

 

至于解决盗号的问题,看看qq就知道。

 

 

如果楼主特别在意数据库的安全,建议楼主结合域管理、用windows登陆数据库 、降低项目中用户权限等角度出发去考虑。