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 logowaniaz 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 solverautwó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 379Odmó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.