2017-03-02 67 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