Saya telah membuat skema dalam SQL Azure dan memberikan izin berikut untuk peran database:
CREATE ROLE myrole AUTHORIZATION dbo;
EXEC sp_addrolemember 'myrole', 'myuser';
CREATE SCHEMA myschema AUTHORIZATION dbo;
GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, UPDATE, VIEW
DEFINITION ON SCHEMA::myschema TO myrole;
GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole;
Melalui izin yang ditentukan di atas myuser
dapat membuat / menjatuhkan skema sendiri, sehingga untuk mengatasi masalah saya mencoba izin ALTER ANY SCHEMA. Tetapi izin ini juga menyangkal pengguna untuk membuat / menjatuhkan tabel.
Izin apa yang diperlukan untuk memungkinkan pengguna melakukan sesuatu dalam skema sendiri tetapi tidak dapat membuat atau menjatuhkan skema itu sendiri?
sumber
Perhatikan bahwa karena skema baru memiliki otorisasi "dbo", pengguna akan dapat secara tidak langsung mengakses semua objek basis data di mana skema tersebut dimiliki oleh dbo.
Contoh:
Ini adalah operasi yang benar dari mesin SQL Server; izin menembus ke skema lain dengan otorisasi yang sama. Untuk membatasi akses tersebut, berikut adalah opsi untuk pembuatan skema:
sumber