SQL Server TOEGANG

Sql Server Toegang



In dit artikel leert u hoe u de GRANT-instructie in SQL Server gebruikt om machtigingen te verlenen voor een beveiligbaar bestand aan een principal.

SQL Server Beveiligbaar en Principal

Een beveiligbaar verwijst naar de bronnen die door het autorisatiesysteem van de SQL Server Database Engine worden beheerd. Een voorbeeld is een databasetabel.

Een principal verwijst naar elke entiteit die toegang tot een SQL Server-resource vereist. Een gebruiker die bijvoorbeeld machtigingen voor een tabel vraagt, is een principal.







SQL Server Grant-verklaring

Hieronder ziet u de syntaxis van de GRANT-opdracht in SQL Server:



GRANT machtigingen
AAN beveiligbaar AAN netspanning;

U moet de toestemming die u aan de principal wilt toewijzen specificeren als een door komma's gescheiden lijst.



Met het sleutelwoord ON kunt u het beveiligingsbestand specificeren waarop de machtigingen worden toegepast. Ten slotte kunt u met het sleutelwoord TO de doelprincipaal instellen.





Als u bijvoorbeeld een gebruiker maakt met de instructie CREATE USER, worden de machtigingen voor die gebruiker niet gedefinieerd. Het is daarom essentieel om de GRANT-instructie te gebruiken om de machtigingen voor die gebruiker in te stellen.

Laten we een voorbeeld nemen.



Voorbeeld login aanmaken

Laten we beginnen met het maken van een voorbeeldlogin ter illustratie. De vraag is zoals hieronder weergegeven:

login linuxhint maken
met wachtwoord='wachtwoord';

De bovenstaande opdracht zou een gebruiker moeten maken met de gebruikersnaam linuxhint en het opgegeven wachtwoord.

Voorbeelddatabase maken

We kunnen een database maken waar de gebruiker zich zal bevinden zodra we een login hebben gedefinieerd. De vragen zijn zoals weergegeven:

database laten vallen als er een resolver is;

databaseresolver maken;

gebruik oplosser;

laat de tabel vallen als er vermeldingen zijn;

tabelitems maken (
id int niet null identiteit(1,
1) primaire sleutel,
servernaam varchar(50),
server_address varchar(255) niet null,
compressiemethode varchar(100) standaard 'geen',
size_on_disk float niet null,
size_compressed vlotter,
total_records int niet null,
init_date datum
);
invoegen
naar binnen
INGANGEN(servernaam,
server adres,
compressiemethode,
grootte op schijf,
grootte_gecomprimeerd,
totaal_records,
begin_datum)
waarden
('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');

Maak een gebruiker aan voor de login

Nadat we de database en tabel hebben gemaakt, kunnen we een gebruiker voor de linuxhint-login maken als:

gebruik de oplosser
maak gebruiker linuxhint
voor inloggen linuxhint;

Log in als de nieuwe gebruiker

Laat ons vervolgens inloggen als de nieuw aangemaakte gebruiker. De opdracht is zoals weergegeven:

setgebruiker 'linuxhint';

Eenmaal ingelogd, kunnen we proberen de tabellen te bekijken door de opdracht select uit te voeren:

selecteer * uit ingangen;

Het uitvoeren van de bovenstaande query zou een fout moeten retourneren:

Bericht 229, niveau 14, staat 5, lijn 379
De SELECT-machtiging is geweigerd voor het object 'entries', database 'resolver', schema 'dbo'.

Dit komt omdat de linuxhint-gebruiker geen machtigingen heeft voor de database, inclusief de SELECT-machtigingen.

Toestemming verlenen aan de gebruiker

We moeten de SELECT-machtigingen verlenen zodat de gebruiker de informatie kan bekijken die is opgeslagen in de tabellen.

Daarvoor moet u inloggen met het SQL Server-beheerdersaccount.

Voer vervolgens de query uit als:

verleen select op ingangen naar linuxhint;

Eenmaal uitgevoerd log je in als de linuxhint-gebruiker en gebruik je de SELECT-instructie.

selecteer * uit ingangen;

In dit geval retourneert de opdracht de tabel omdat de gebruiker SELECT-machtigingen heeft

U kunt ook andere machtigingen aan de gebruiker toewijzen, zoals invoegen en verwijderen als:

geef invoeging, verwijder op ingangen naar linuxhint;

in dit geval moet de linuxhint-gebruiker de machtigingen SELECT, INSERT en DELETE hebben voor de ingangentabel.

Conclusie

In dit bericht hebben we het gebruik van de GRANT-opdracht in SQL Server onderzocht. Met de opdracht kunt u machtigingen toewijzen aan een bepaalde opdrachtgever.