我在制作一个软件的登录部分,用户有2种级别,普通用户和管理员,在连接数据库(SQL Sever 2005)的时候,我不知道该怎么设计了,有2种办法
1)在数据库中建一个用户表,用来保存用户信息(用户名,密码,权限),链接数据库的时候,使用同样的一个用户名比如sa链接,然后将表的内容全部读到内存中,再进行验证
2)在SQL Sever 2005的安全性-登录名中创建不同级别的登录名,每个客户端连接数据库的时候,使用自己的用户名和密码进行连接数据库,
不知道这2种办法哪一个好,有什么区别,希望知道的人能告诉我,谢谢。

解决方案 »

  1.   

    第一种方式也不用把所有的加到内存啊
    你就写个函数或者存取过程,传入帐户密码,返回登录信息就行了。觉得要是不安全,再非可逆加密。
    每次登录比较下就好了。第二种方式,不是很明白,你的意思是直接用Sql的帐号作为你的软件帐号?
    那是不是需要把Sql帐号分不同的权限,然后把Sql权限拿来作为软件权限?不知道是什么样的需求。。
      

  2.   

    是,第2种就是用SQL的帐号作为客户端的数据库连接帐号,可以建立很多个这样的帐号,设定不同的级别,2种方法我都做出来过,但不知道到底应该用哪个,至于你上面说的用函数或者存取过程,那个我不是没有想过,只是这个问题我也存在不少疑惑,这样做会加重服务器的负担一一核对帐号是很占资源的,但如果按我说的把帐号信息都存到内存,那在客户机就可以获取到所有的帐号信息,这样没有任何安全性可言。