请教: SQL Server的安全性问题(100分)

  • 主题发起人 主题发起人 flai
  • 开始时间 开始时间
F

flai

Unregistered / Unconfirmed
GUEST, unregistred user!
环境:SQL Server6.5,Delphi4.0,服务器Windows NT 4.0,
客户端:
win98,并且配置成"登录到Winows NT域"

在我开发程序之前,由于SQL Server上已有多个数据库,
并且已经将安全模式设置为与NT集成模式。

这样,我只好赋给那些使用我程序的用户在我的Database上具有DBO的权限.

这样一来,他们如果在客户端装一个SQL Client的话,我的数据库中所
有内容就尽在他们眼底,并且可以肆意Insert,delete,update,那怎么
行?

也许有人会说,只要给程序用户予Select权限即可,但我的程序中肯定
要对表进行insert,delete,update的,是不是?

我有试过 在TDatabase.Params中设置UserName,Password, 也不行,除非该
客户端登录用户在我的Database中具有DBO或更高权限!

怎么办是好?

(版主大人: 这个问题我以前是有提过,也许只是悬赏10分的缘故,少
有人问津,所以只好旧话重提,并加分至100)
 
你可以编写一个注册程序,在此程序中通过修改注册表将USERNAME和PASSWORD写入
注册表,当然USERNAME和PASSWORD都须加密。
程序运行时通过读注册表获得USERNAME和PASSWORD,登录SQL SERVER。
 
你可以把sql语句写在存储过程内,给出执行存储过程的权限
 
先加一个通用用户,给它SELECT某个数据库中的一张表的权限,这张表中有DBO或SA的密码
客户端登录用这个通用用户,取得密码后重新登录即可

 
你为什么要登录到NT域呢?
如果这样的话,你的win98是可以记住你的登录密码的
当然,在那台机器上随随便便的安装一个sql的客户端的话就可以登录到你的Sql上了
难道你非得登录到NT域吗?
不登录的话,Sql的客户端在登录Sql的时候就会提示输入用户名和密码
这样不久什么都解决了吗
为什么要登录到NT域呢而且设置成NT集成模式呢?
 
多人接受答案了。
 
后退
顶部