Czy poniższe polecenie skutecznie daje użytkownikowi „MyUser” uprawnienie do wykonywania WSZYSTKICH procedur składowanych w bazie danych?
GRANT EXECUTE TO [MyDomain\MyUser]
Czy poniższe polecenie skutecznie daje użytkownikowi „MyUser” uprawnienie do wykonywania WSZYSTKICH procedur składowanych w bazie danych?
GRANT EXECUTE TO [MyDomain\MyUser]
SQL Server 2008 i nowsze:
/* CREATE A NEW ROLE */
CREATE ROLE db_executor
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor
Tylko dla użytkownika (nie roli):
USE [DBName]
GO
GRANT EXECUTE TO [user]
user
być może trzeba będzie znajdować się w nawiasach kwadratowych. Było to prawdą w moim przypadku użycia przynajmniej częściowo, ponieważ mój użytkownik miał dołączoną domenę (tj. Miał w niej znak \). edycja: naprawiono znak bez znaku ukośnikaSQL Server 2005 wprowadził możliwość nadawania uprawnień do wykonywania bazy danych na zasadzie bazy danych, tak jak opisano:
Spowoduje to przyznanie uprawnień w zakresie bazy danych, co niejawnie obejmuje wszystkie procedury składowane we wszystkich schematach. Oznacza to, że nie musisz jawnie udzielać uprawnień na procedurę składowaną.
Możesz również ograniczyć, przyznając uprawnienia do wykonywania schematu, jeśli chcesz być bardziej szczegółowy:
źródło
Oprócz powyższych odpowiedzi chciałbym dodać:
Zamiast tego możesz przyznać tę rolę roli , a następnie przypisać tę rolę użytkownikom. Załóżmy, że utworzyłeś rolę
myAppRights
za pośrednictwemwtedy możesz nadać prawa wykonywania za pośrednictwem
do tej roli.
Lub, jeśli chcesz to zrobić na poziomie schematu:
również działa (w tym przykładzie rola
myAppRights
będzie miaładbo
później uprawnienia do wykonywania wszystkich elementów schematu ).W ten sposób wystarczy to zrobić tylko raz i można łatwo przypisać / cofnąć wszystkie powiązane prawa aplikacji użytkownikowi / użytkownikowi, jeśli zajdzie potrzeba późniejszej zmiany - jest to szczególnie przydatne, jeśli chcesz utworzyć bardziej złożone profile dostępu.
Uwaga: jeśli nadasz rolę schematowi, wpłynie to również na elementy, które utworzysz później - może to być korzystne lub nie, w zależności od zamierzonego projektu, więc miej to na uwadze.
źródło
GRANT EXECUTE TO [ROLE]
Ten na pewno pomoże
źródło