質問編集履歴
3
試したことの捕捉を記述
test
CHANGED
File without changes
|
test
CHANGED
@@ -65,3 +65,10 @@
|
|
65
65
|
GRANT SELECT ON dbo.<製品マスタのビュー> TO <接続先専用ユーザー> AS dbo
|
66
66
|
|
67
67
|
```
|
68
|
+
|
69
|
+
2022/03/18 補足3
|
70
|
+
試したことへの記載をしておりませんでしたが、
|
71
|
+
同一インスタンス、同一DB環境において接続先専用のViewが参照可能かつ、大元のテーブルが参照不可になる確認はできています。
|
72
|
+
今回実施したいのは同一インスタンス、別DB環境でのView参照になります。
|
73
|
+
(参考URLの例で行くとSERVER1のインスタンス内に大元のテーブルを持つSampleDBがあって、そこにアクセスするViewはSampleDB2,SampleDB3のような別のDBに配置したいです)
|
74
|
+
別DBにすると実現できないということであれば、その旨を教えていただけますと幸いです。
|
2
提示URLに従った結果の記載
test
CHANGED
File without changes
|
test
CHANGED
@@ -58,3 +58,10 @@
|
|
58
58
|
SQL Server 2019
|
59
59
|
SQL Management Studio v18.10
|
60
60
|
|
61
|
+
2022/03/18 補足2
|
62
|
+
提示いただいたURLを参考に以下のクエリを実行しましたが、やはり先の捕捉に記載した通りのエラーとなってしまいます。
|
63
|
+
```SQL
|
64
|
+
use <専用DB>
|
65
|
+
GRANT SELECT ON dbo.<製品マスタのビュー> TO <接続先専用ユーザー> AS dbo
|
66
|
+
|
67
|
+
```
|
1
作業詳細と発生エラーを記入
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,3 +26,35 @@
|
|
26
26
|
解決方法がわかりましたらご教示いただけますと幸いです。
|
27
27
|
やりたいことが実現できればDBを分ける以外の方法でも構いません
|
28
28
|
よろしくお願いします。
|
29
|
+
|
30
|
+
2022/03/18 補足
|
31
|
+
> 専用DB側にビュー参照のユーザーロールを作ってユーザに付与する
|
32
|
+
こちらを行った際の手順ですが、
|
33
|
+
1.ロールを作る
|
34
|
+
・ロール名をつける
|
35
|
+
・同じ種類のオブジェクトすべてを対象としてViewを選択
|
36
|
+
・'Select'の'Grant'にチェックを入れる
|
37
|
+
2.ロールをログインに紐づける
|
38
|
+
・ログインの対象ユーザで作成したロールにチェックを入れる
|
39
|
+
|
40
|
+
上記の手順で実施しています。
|
41
|
+
|
42
|
+
このとき、大元のDBにログインユーザをマップしていないとき以下のエラーとなりました。
|
43
|
+
> 現在のセキュリティ コンテキストでは、サーバー プリンシパル "<ログインユーザー名>" はデータベース "<大元データベース名>" にアクセスできません。
|
44
|
+
|
45
|
+
大元のDBにログインユーザーをマップすると以下のエラーとなりました。
|
46
|
+
> SELECT 権限がオブジェクト '製品マスタ、データベース '<大元データベース名>'、スキーマ 'dbo' で拒否されました。
|
47
|
+
(製品マスタはデフォルトスキーマ'dbo'に作成しています)
|
48
|
+
(作成したロールの所有者は'dbo'になっています)
|
49
|
+
|
50
|
+
大元のDBで製品マスタに対するSELECT権限をつけるとエラーは発生しなくなりますが、直接製品マスタを参照できてしまいます。
|
51
|
+
|
52
|
+
どこか手順に不足、誤りがあるのでしょうか?
|
53
|
+
|
54
|
+
またビューに参照権限を与えるとは、ユーザーやロールに参照権限をつけるのではなく、
|
55
|
+
ビューに製品マスタへの参照権限をつけるということでしょうか?
|
56
|
+
この操作の方法がわからないので方法または参考URLを教えていただけないでしょうか?
|
57
|
+
環境
|
58
|
+
SQL Server 2019
|
59
|
+
SQL Management Studio v18.10
|
60
|
+
|