列出用户并获取进度数据库的关联表权限的最佳方法是什么?
问问题
3965 次
4 回答
1
为了审计目的,我最终针对我的 odbc 编写了一个快速的 sql 查询。
SELECT * FROM sysprogress.systabauth ORDER BY grantee, tbl
看起来还有几个存储过程(至少在我们的环境中)可以满足您的需求:
SQL_TABLE_PRIVILEGES
SQL_TABLE_PRIVILEGES2X
于 2012-10-24T15:29:21.883 回答
1
4GL 引擎和 SQL-92 引擎的权限处理方式略有不同。
从 4GL 的角度来看,您希望查看 _User 表来查找用户。IE:
for each _user no-lock:
display _user.
end.
要查看表权限,请查看表的 CAN-* 字段:
for each _file no-lock where _hidden = no:
display
_file-name
_can-read
_can-write
_can-create
_can-delete
.
end.
Tim 指出的文档有更多细节。
于 2012-10-24T16:46:39.723 回答
0
用户存储在 _user 表中。您可以通过在此处查阅他们的身份和安全文档来了解有关 Progress 如何进行安全和身份管理的更多信息:http: //communities.progress.com/pcom/docs/DOC-107735
于 2012-10-24T16:00:04.730 回答
0
这将为您提供用户列表以及他们对当前数据库中每个表的权限:
FOR EACH _user
NO-LOCK:
DISPLAY
_User._Userid
_User._User-name.
FOR EACH _File
WHERE _File._Hidden = FALSE
NO-LOCK:
DISPLAY
_File._file-name FORMAT "x(20)"
CAN-DO(_File._can-read,_User._userid)
FORMAT "Y/N" COLUMN-LABEL "Read"
CAN-DO(_File._can-write,_User._userid)
FORMAT "Y/N" COLUMN-LABEL "Write"
CAN-DO(_File._can-create,_User._userid)
FORMAT "Y/N" COLUMN-LABEL "Create"
CAN-DO(_File._can-delete,_User._userid)
FORMAT "Y/N" COLUMN-LABEL "Delete"
.
END.
END.
此报告将很快变大,具体取决于数据库中的用户和表的数量。
于 2012-11-01T23:18:26.063 回答