Apakah perintah berikut secara efektif memberikan izin kepada pengguna, "MyUser," untuk menjalankan SEMUA prosedur yang tersimpan dalam database?
GRANT EXECUTE TO [MyDomain\MyUser]
Apakah perintah berikut secara efektif memberikan izin kepada pengguna, "MyUser," untuk menjalankan SEMUA prosedur yang tersimpan dalam database?
GRANT EXECUTE TO [MyDomain\MyUser]
SQL Server 2008 dan di atas:
/* CREATE A NEW ROLE */
CREATE ROLE db_executor
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor
Untuk hanya pengguna (bukan peran):
USE [DBName]
GO
GRANT EXECUTE TO [user]
user
mungkin harus berada dalam kurung kotak. Ini benar dalam kasus penggunaan saya setidaknya sebagian karena pengguna saya memiliki domain terlampir (mis. Ia memiliki \ karakter di dalamnya). sunting: memperbaiki karakter slash unescapedSQL Server 2005 memperkenalkan kemampuan untuk memberikan izin eksekusi database ke prinsip database, seperti yang telah Anda jelaskan:
Itu akan memberikan izin pada lingkup basis data, yang secara implisit mencakup semua prosedur tersimpan di semua skema. Ini berarti Anda tidak perlu secara eksplisit memberikan izin per prosedur tersimpan.
Anda juga dapat membatasi dengan memberikan skema mengeksekusi izin jika Anda ingin lebih terperinci:
sumber
Selain jawaban di atas, saya ingin menambahkan:
Anda mungkin ingin memberikan ini kepada peran sebagai gantinya, dan kemudian menetapkan peran tersebut kepada pengguna. Misalkan Anda telah membuat peran
myAppRights
viamaka Anda dapat memberikan hak eksekusi melalui
untuk peran itu.
Atau, jika Anda ingin melakukannya di tingkat skema:
juga berfungsi (dalam contoh ini, peran
myAppRights
akan memiliki hak mengeksekusi pada semua elemen skemadbo
setelahnya).Dengan cara ini, Anda hanya perlu melakukannya sekali dan dapat menetapkan / mencabut semua hak aplikasi terkait dengan mudah ke / dari pengguna jika Anda perlu mengubahnya nanti - terutama berguna jika Anda ingin membuat profil akses yang lebih kompleks.
Catatan: Jika Anda memberikan peran pada skema, itu memengaruhi juga elemen yang akan Anda buat nanti - ini mungkin bermanfaat atau tidak tergantung pada desain yang Anda maksudkan, jadi ingatlah itu.
sumber
GRANT EXECUTE TO [ROLE]
Yang ini pasti membantu
sumber