0

ユーザーを一覧表示し、進行状況データベースの関連するテーブルのアクセス許可を取得するための最良の方法は何ですか?

4

4 に答える 4

1

4GL エンジンと SQL-92 エンジンのパーミッションは多少異なる方法で処理されます。

4GL の観点から、_User テーブルを見てユーザーを見つけます。すなわち:

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 に答える
1

私は、監査目的で、odbc に対して簡単な SQL クエリを作成することになりました。

SELECT * FROM sysprogress.systabauth ORDER BY grantee, tbl

また、必要なものを取得できるいくつかのストアド プロシージャ (少なくとも私たちの環境では) があるようです。

SQL_TABLE_PRIVILEGES
SQL_TABLE_PRIVILEGES2X
于 2012-10-24T15:29:21.883 に答える
0

ユーザーは _user テーブルに格納されます。Progress がどのようにセキュリティと ID 管理を行っているかについては、こちらの Identity and Security Docs で確認できます: 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 に答える