2017-03-02 10 views
0

特定のユーザーにテーブルの選択、更新、削除、挿入を自動的に許可するスクリプトを作成しようとしています。PowerDesignerがVBでテーブル許可を作成する

Dim ModelTables, table, tab, newPerm 
SET ModelTables = obj.Tables 

For Each table in ModelTables 

    If IsObject(table) Then 
    Set tab = table 

    'Testing just on one table 
    If InStr(tab.Name, "MY_TEST_TABLE")=1 Then 

     set newPerm = tab.Permissions.createNew() 
     '-- this is all I managed to create 

    End If 
    End if 
Next 

これはすべて管理したものです。私は許可の構造を知らない。私もVBの初心者です。誰かがヒント/適切なコード/ドキュメントで私をサポートできますか?

+0

これは問題ですが、ターゲットDBMSによっては、ユーザーをグループに入れて、このグループに権限を付与するのはなぜですか? – pascal

+0

スクリプトの最初に 'option explicit'を追加すると、実際に開発に役立ちます... – pascal

答えて

0

ここに、新しいアクセス許可を作成し、既存のアクセス許可を一覧表示するサンプルを示します。

option explicit 
dim obj 
set obj = activemodel 
dim ModelTables : set ModelTables = obj.Tables 
dim u : set u = Finduser("User_1") 
if not u is nothing then 
    dim table 
    For Each table in ModelTables 
     If IsObject(table) Then 
     dim tab 
     Set tab = table 
     dim p 
     if tab.Permissions.count = 0 then 
      output "creating permission on " & tab.name 
      set p = tab.Permissions.createNew 
      set p.DBIdentifier = u 
      p.grant = "SELECT,DELETE,INSERT,UPDATE" 
     end if 
     ' show permissions 
     output "permissions on " & tab.name 
     for each p in tab.Permissions 
      output " for user " & p.DBIdentifier & " : " & p.grant 
     next 
     End if 
    Next 
end if 

function FindUser(name) 
    dim u 
    for each u in activemodel.users 
     if u.name = name then 
     set FindUser = u 
     output "found user" 
     end if 
    next 
end function 
関連する問題