ビューを更新する権限があるとします。ビューは次のとおりです。
create view v as select * from Student where major like '%Engineering%'
.
専攻に「工学」という単語が含まれていない学生を変更または表示する権限がありません。挿入する学生の専攻が であっても、このビューに挿入することを許可する必要があり'Biology'
ますか? ビューは基本リレーションに伝播しますか?
ビューを更新する権限があるとします。ビューは次のとおりです。
create view v as select * from Student where major like '%Engineering%'
.
専攻に「工学」という単語が含まれていない学生を変更または表示する権限がありません。挿入する学生の専攻が であっても、このビューに挿入することを許可する必要があり'Biology'
ますか? ビューは基本リレーションに伝播しますか?
これは、データベースエンジンとビューの作成方法によって異なります。
元のビュー定義により、OracleおよびSqlServerユーザーは、ユーザーが表示できないビュー行を挿入したり、行が表示されなくなるようにビュー行を更新したりできます。
ただし、OracleおよびSqlServerのビューにWITH CHECK OPTIONを追加して、結果が表示されないようにユーザーがビュー行を挿入または更新できないようにすることができます。
create view v as select * from Student where major like '%Engineering%' with check option;
SQL Server 2008 で試してみました - 挿入された行は基になるテーブルに反映されます。ただし、ビューから選択すると、新しい行が表示されないことは明らかです。