none
store procedure 權限問題 RRS feed

  • 問題

  • 請問我在db1 建立store procedure ,script 如下
    ------------------------------------------------------
    use db1
    go

    create procedure sp1
    as
     update db1..table1 set a='1'
     update db2..table1 set a='1'
    go
    grant execute on sp1 to [user1]
    ------------------------------------------------------
    並在db1及db2 的table1 Deny [user1] update 權限
    exec sp1  之後
    db1..table1----已被update
    db2..table1----出現無update權限訊息

    不解的是SQL內部權限執行帳號如何運作,為什麼在db1就有執行權限,跨資料庫就不行?
    謝謝...



    2009年11月9日 上午 09:05

解答

  • In this case, you have to either enable 'cross database ownership chaining' between db1 and db2 or grant update to user1 on db2..table1.
    • 已標示為解答 jeff.ko 2009年11月11日 上午 12:46
    2009年11月9日 下午 02:55

所有回覆

  • In this case, you have to either enable 'cross database ownership chaining' between db1 and db2 or grant update to user1 on db2..table1.
    • 已標示為解答 jeff.ko 2009年11月11日 上午 12:46
    2009年11月9日 下午 02:55
  • 'cross database ownership chaining' 我查過了,在權限方面會比較不好管理
    所以 grant update to user1 on db2..table1 應該是比較好的方法 對吧?

    2009年11月10日 上午 04:04
  • Whatever works for you is valid.
    2009年11月10日 下午 05:45