跳到主要內容

 none
請教一個以DB View 讀取不同 DB 上 Table 的方法 RRS feed

  • 問題

  • 我們公司有一隻使用 Always On High Availability 的 Database name = DB1, DB1 的 Availability Mode 都是使用 Synchronous commit. 現在我們想在 Secondary 的DB 上建立一隻新的database name = DB2, DB2是用來存放一些 View 去專門讀取 DB1 的Table.

    操作的方式是 :

    1. 建立DB2 在 Secondary 的 Instance 上.

    2. 在DB2 上建立一個新的schema name = sm

    3. 在DB2 上以 schema : sm 去建立一個View 去讀取DB1 的某個Table 如 : 

    sample : 
    create view sm.v_table1 as

    select * from DB1.dbo.table1;

    4. 再在目前Secondary 的 Instance 上, 加一個新的 User = user01

    5. 給 user01 grant select schema sm 的權限 : 

    sample : 
    grant select on schema :: sm to user01; 

    6. 然後以 user01 login 去select 這個新 View 會出現以下的error message : 

    Msg 916, Level 14, State 1, Line 1
    The server principal "user01" is not able to access the database "DB1" under the current security context.

    ----------------------------------------------------------------------------------------------------------------------

    請問這個情況下, 要如何去放權限才可以經View 去讀取這個 Read only DB1 的數據?

    2019年7月9日 上午 10:22

所有回覆