怎么以不同的账号从delphi编写的程序登录到sqlserver7.0(100分)

  • 主题发起人 serenesky
  • 开始时间
S

serenesky

Unregistered / Unconfirmed
GUEST, unregistred user!
1我编写的是midas程序,客户端使用的是socketconnection与应用程序服务器连结,应用程序
服务器使用的是用adoconnection与sqlserver连接。
2我们都知道在编写程序时用adoconnection与sqlserver连接时他便会弹出一个对话框,需要设置id和password。
我想不再这里设置.因为在这里设置固定了之后,以后每次登录服务器时用的都是同一个账户,而没有办法以不
同的账户登录,从而无法针对不同的用户设置不同的权限
3。因此我在客户端将socketconnection的prompt设置为true,这样每次登录时需要输入账号
和密码
4。我的问题是怎样才能以在客户端的账号和密码通过adoconnection登录到sqlserver,从而
每个用户拥有自己的权限
 
建立应用程序角色,建立自己的用户账号管理表,用同一个数据库用户账号登陆到数据库。
然后输入用户的账号,根据用户的权限不同激活相应的应用程序角色
 
w12345678,谢谢你的及时的回答
但可否说的具体一点
我有以下几点需要你的进一步帮助
1。只要从客户端登录SQLSERVER后我在客户端便可以建立我的用户账号管理表
2。如你所说,我们可以用一个账户登录到数据库,但是这样的话
其实可以说是一种“伪登录”,因为从SQL SERVER Profiler中其实看到的只是一个账户在登录
而无法观测到多人。 我不知道这种方法是否可行,不知道你是否用过
而且是不是所有的midas程序如果涉及到登录的时候均是用这种方法,
有没有更好的方法。
 
按你说的有两种方法可以实现。一是建立一个表,记录登录人的帐号,这样就可以知道
是谁登录的当然也可以知道有多少人了。二是在SQL SERVER中建立不同的帐号,登录的时候
用这个帐号登录,在SQL SERVER的ENTERPRIST中就可以知道是谁登录的了。
 
1。其实,激活应用程序角色后,连接sql的不是登陆时的数据库用户啦,而是由应用程序角色
全权接管啦,登陆用的数据库账户的权限被屏蔽啦,这样比较的安全,虽然等录用的数据库
账户泄密,对数据库的损失不大 因登陆用户基本上没有什么权限,只要有执行激活应用程
序角的存储过程的权限就足够啦,该存储过程可以加密,如果要看是什么人登陆数据库看来
只好采用tanhua说的,另建一表。登陆后要建立账号管理表,端看你激活的应用程序角色
有没有建表的权限
2。要登陆到SQL服务器也可以通过多个不同的数据库账号进入,不是说只有通过应用程序角
色管理,那仅作参考
 
你可能动态改变adoconnection的connectstring来控制
 
antic,thanks
但是在adoconnection的connectstring中的help中说
name 和password不能修改
也就是说在程序运行的时候不能动态的修改name和password
不过help中说可以通过provider来修改,但是我不明白这是什么意思
 
是啊,我一直都用w12345678说的方法做的,但是最近看见一个软件是用sql server中的
用户和角色来作的,就是说数据库中已经建好了很多用户和角色了,他们是怎么在程序中
用到的?又是如何用这些用户和角色来控制客户端程序的?请高手解答
 
顶部