如何用类似GRID的形式显示出允许访问某个数据库用户的名单?(50分)

  • 主题发起人 主题发起人 base2
  • 开始时间 开始时间
B

base2

Unregistered / Unconfirmed
GUEST, unregistred user!
想做一个小型的交易系统
其中主服务器上有个功能要求显示各个用户的信息
望哪位大虾不吝指教
 

用 StringGrid
 
能说得详细一点吗?
 

with StringGrid1 do begin

Cell[0,0] := '姓名';
Cell[1,0] := '性别';
Cell[2,0] := '权限';

for i:=1 to AllUser do begin

Cell[0,i] := User.Name;
Cell[1,i] := User.Sex;
Cell[2,i] := User.Right;

end;

end;
 
我想知道的主要是数据库连接方面的问题
我用的是SQL7做的数据库
但如果用SQL语句列,好象它一上来就直接指向TABLE中的数据
而无法列出USER的信息
由于小生是第一次做这方面的活
有许多不懂的地方,还请多多指教
另:如果实现这个功能不是一两行语句就可以搞定的话
我可以接着加分,自杀后再加... ...:P
 

搞不懂你到底想干什么,如果要显示数据库内容的话,可以用 Query 和 DBGrid
 
to:康夫
...能这么加吗?
user的信息是在SQL数据库users里添加的,并不是一个数组呀
关键是如何与数据库相连:(
 
如果是想知道数据库用户的信息,用
sp_helpuser

query1.sql.text:='sp_helpuser';
query1.open;

sp_help...系列的存储过程你可以查一下,有很多
 
to:康夫
其实就是一个系统管理员管理各个授权用户的界面
 
To:温柔一刀
用sp_helpuser好象只能列出userID?
没有用户名,权限之类的东西
能麻烦你再说得细一点吗?或者发一份帮助给我
我的机子上连帮助都没有:(
3xalot
 
sp_helpuser返回如下结果集:

UserName GroupName LoginName DefDBName UserID SUserID
------------------ ---------------- ------------------------------ ------------------ ------ -------
dbo db_owner sa master 1 1
(.....其他用户)

要针对某个用户,则 sp_helpuser zhang3

获得了一个用户的name和ID之后用下面语句就可以返回一个用户对所有表的权限:
select a = o.name, b = user_name(o.uid), user_name(p.uid), o.sysstat & 0xf, p.id, action, protecttype from sysprotects p, sysobjects o where o.id = p.id and p.action in (193, 195, 196, 197, 224, 26) and p.uid = 7 order by a, b
其中"p.uid = 7"是指定用户ID号,把7改成你所需用户的ID就可以了.

action就是权限类型,具体含义你慢慢实验吧!
如果对同一个表有多个权限,是以多条记录出现的。


告诉你一个"独门武功"吧:

打开SQL Trace(SQL Profiler),不要执行任何东西,
打开enterprise Mgr.找到你所要实现的功能的界面
(例如列出用户某个权限)的"前一步",
切换到SQL Trace(SQL Profiler),打开跟踪,
enterprise Mgr.中执行你所需要的功能

此时SQL Trace中显示的SQL语句就是读取该功能所需数据的SQL,
上面那条SQL就是这样得来的。
 
接受答案了.
 
后退
顶部