GRANT SQL Server

Grant Sql Server



W tym artykule zrozumiesz, jak użyć instrukcji GRANT w SQL Server, aby udzielić podmiotowi uprawnień do zabezpieczenia.

SQL Server bezpieczny i główny

Zabezpieczanie odnosi się do zasobów, do których dostęp kontroluje system autoryzacji SQL Server Database Engine. Przykładem może być tabela bazy danych.

Nazwa podmiotu odnosi się do dowolnej jednostki, która wymaga dostępu do dowolnego zasobu programu SQL Server. Na przykład użytkownik żądający uprawnień do tabeli jest podmiotem zabezpieczeń.







Oświadczenie o przyznaniu programu SQL Server

Poniżej przedstawiono składnię polecenia GRANT w SQL Server:



PRZYZNAJ uprawnienia
ON zabezpieczony do głównego;

Musisz określić uprawnienie, które chcesz przypisać zleceniodawcy, jako listę oddzieloną przecinkami.



Słowo kluczowe ON umożliwia określenie zabezpieczenia, do którego są stosowane uprawnienia. Wreszcie słowo kluczowe TO umożliwia ustawienie docelowego podmiotu zabezpieczeń.





Na przykład utworzenie użytkownika za pomocą instrukcji CREATE USER nie definiuje uprawnień dla tego użytkownika. Dlatego konieczne jest użycie instrukcji GRANT do ustawienia uprawnień dla tego użytkownika.

Weźmy przykład.



Utwórz przykładowy login

Zacznijmy od utworzenia przykładowego loginu w celach ilustracyjnych. Zapytanie jest podane poniżej:

utwórz linuxhint logowania
z hasłem='hasło';

Powyższe polecenie powinno utworzyć użytkownika o nazwie użytkownika linuxhint i określonym haśle.

Utwórz przykładową bazę danych

Możemy stworzyć bazę danych, w której użytkownik będzie przebywał po zdefiniowaniu loginu. Zapytania wyglądają tak, jak pokazano:

upuść bazę danych, jeśli istnieje resolwer;

utwórz narzędzie do rozpoznawania baz danych;

użyj resolwera;

upuść tabelę, jeśli istnieją wpisy;

utwórz wpisy w tabeli (
identyfikator int nie jest pusty tożsamość (1,
1) klucz podstawowy,
nazwa_serwera varchar(50),
adres_serwera varchar(255) nie jest pusty,
metoda kompresji varchar(100) domyślnie „brak”,
rozmiar zmiennoprzecinkowy size_on_disk nie jest pusty,
rozmiar_skompresowany zmiennoprzecinkowy,
total_records int nie jest puste,
data_początkowa
);
wstawić
w
WPISY(nazwa_serwera,
adres serwera,
metoda kompresji,
rozmiar dysku,
rozmiar_skompresowany,
suma_rekordów,
data_początkowa)
wartości
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Utwórz użytkownika do logowania

Po utworzeniu bazy danych i tabeli możemy utworzyć użytkownika do logowania do systemu Linux jako:

użyj solvera
utwórz użytkownika linuxhint
do logowania linuxhint;

Zaloguj się jako nowy użytkownik

Następnie zalogujmy się jako nowo utworzony użytkownik. Polecenie wygląda tak, jak pokazano:

ustaw użytkownika „linuxhint”;

Po zalogowaniu możemy spróbować wyświetlić tabele, uruchamiając polecenie select:

wybierz * z wpisów;

Uruchomienie powyższego zapytania powinno zwrócić błąd:

Wiadomość 229, poziom 14, stan 5, wiersz 379
Odmówiono uprawnienia SELECT do obiektu „wpisy”, bazy danych „resolver”, schematu „dbo”.

Dzieje się tak, ponieważ użytkownik linuxhint nie ma żadnych uprawnień do bazy danych, w tym uprawnień SELECT.

Udziel uprawnień użytkownikowi

Musimy przyznać uprawnienia SELECT, aby umożliwić użytkownikowi przeglądanie informacji przechowywanych w tabelach.

W tym celu musisz zalogować się przy użyciu konta administracyjnego SQL Server.

Następnie uruchom zapytanie jako:

przyznaj wybór przy wpisach do linuxhint;

Po wykonaniu zaloguj się jako użytkownik linuxhint i użyj instrukcji SELECT.

wybierz * z wpisów;

W takim przypadku polecenie zwraca tabelę, ponieważ użytkownik ma uprawnienia SELECT

Możesz także przypisać użytkownikowi inne uprawnienia, takie jak wstawianie i usuwanie, jako:

przyznaj wstawianie, usuwanie wpisów do linuxhint;

w takim przypadku użytkownik linuxhint powinien mieć uprawnienia SELECT, INSERT i DELETE w tabeli wpisów.

Wniosek

W tym poście zbadaliśmy użycie polecenia GRANT w SQL Server. Polecenie pozwala na nadanie uprawnień dla danego zleceniodawcy.