sql 2000 如何查询用户权限

来源:百度知道 编辑:UC知道 时间:2024/05/25 00:31:45
首先我用的是免费版(MSDE2000),所以没有企业管理器,查询只能在纯sql语句进行

我的目的是:知道某个用户名,想查询他的权限,包括,select insert等,还有这些权限是针对那个表的。等等。

网上说要使用数据字典 DBA_TBL_PRIV,但输入select * from DBA_TBL_PRIV 时报错未发现此对象 (在osql中,以sa登录)。

看SQL2000 的在线手册,那些sysusers,syspermissions的很多字段都是内部使用的,人类基本看不懂,所以这方面我也没有什么线索。
请大家帮一下忙

用户权限是保存在master表中的,可以使用系统存储过程查询用户权限,
通常你需要有master表的权限(如:sa),例:

sp_helpuser
报告有关当前数据库中 Microsoft® SQL Server™ 用户、Microsoft Windows NT® 用户和数据库角色的信息。

语法
sp_helpuser [ [ @name_in_db = ] 'security_account' ]

参数
[@name_in_db =] 'security_account'

当前数据库中 SQL Server 用户、Windows NT 用户或数据库角色的名称。security_account 必须存在于当前的数据库中。security_account 的数据类型为 sysname,默认值为 NULL。如果没有指定 security_account,系统过程将报告当前数据库中的所有用户、Windows NT 用户以及角色的信息。当指定 Windows NT 用户时,请指定该 Windows NT 用户在数据库中可被识别的名称(用 sp_grantdbaccess 添加)。

返回代码值
0(成功)或 1(失败)

注释
使用 sp_helpsrvrole 及 sp_helpsrvrolemember 返回固定服务器角色的信息。

为数据库角色执行 sp_helpuser 等价于为该数据库角色执行 sp_helpgroup。

权限
执行权限默认授予 public 角色。

示例
A. 列出所有用户
下面的示例列出当前数据库中所有的用户。

EXEC sp_helpuser

B. 列出单个用户的信息
下面的示例列出用户 dbo 的信息。

EXEC sp_helpuser 'dbo'

C. 列出某个数据库角色的信息