Gestionarea utilizatorilor bazei de date folosind Management Studio. Crearea rolurilor bazei de date

Salutare tuturor! Acum ne vom uita la exemple crearea și ștergerea utilizatorilor în SGBD Microsoft SQL Server atât folosind instrucțiuni Transact-SQL, cât și folosind mediul Management Studio.

Procesul de creare a utilizatorilor în MS SQL Server include două etape:

  1. Crearea unui login SQL Server. Acest nume este necesar pentru a permite utilizatorului să se conecteze la instanța SQL Server;
  2. Crearea unui utilizator de bază de date. În acest caz, acordăm deja permisiuni utilizatorului asupra obiectelor bazei de date.

Notă! De exemplu, serverul meu SQL va fi Microsoft SQL Server 2012 Express. O bază de date de testare Test a fost creată pe acest server SQL.

Crearea unui login pe MS SQL Server

Înainte de a începe să creați o autentificare pentru serverul SQL, trebuie să decideți asupra metodei de autentificare. Există două opțiuni:

  1. Autentificare Windows este atunci când o autentificare poate identifica un utilizator ca un cont Windows sau ca membru al unui grup Windows ( inclusiv conturi de domeniu și grupuri);
  2. Autentificare SQL Server. În acest caz, autentificarea există doar în SQL Server.

Să ne uităm la câteva exemple de creare a unei autentificări pe un server SQL. Vom face acest lucru mai întâi folosind SQL Server Management Studio și apoi folosind Transact-SQL.

Crearea unei autentificare folosind SQL Server Management Studio

Lansăm Management Studio, apoi în browserul de obiecte găsim articolul „ Siguranță", deschideți-l cu un semn plus, faceți clic dreapta pe elementul " Conectări" și selectați elementul " Creați autentificare».

Apoi, de exemplu, să creăm o autentificare de testare cu autentificare SQL Server. Furnizăm un nume de conectare, creăm o parolă și o confirmăm. De asemenea, putem verifica mai multe opțiuni, cum ar fi politica de utilizare a parolelor, baza de date implicită, limba implicită și altele.

Apoi faceți clic pe butonul „ Bine", după care va fi creat autentificarea TestLogin. În mod implicit, această autentificare va fi activată și va avea drepturile rolului de server „public”.

Crearea unei autentificare folosind Transact-SQL

Pentru a crea o autentificare în Transact-SQL, trebuie să deschideți editorul de interogări în Management Studio și să rulați următoarea instrucțiune ( face exact același lucru ca acțiunile noastre de mai sus în GUI Management Studio).

CREAȚI LOGARE CU PAROLA=N"Pa$$w0rd", DEFAULT_DATABASE=, DEFAULT_LANGUAGE=[rusă], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON GO

Cu alte cuvinte, pentru a crea o autentificare în serverul SQL, este folosită instrucțiunea CREAȚI LOGIN.

Crearea unui login SQL Server cu autentificare Windows

Pentru a crea o autentificare Windows Authenticated, rulați următoarea instrucțiune SQL:

CREAȚI LOGARE DIN WINDOWS CU DEFAULT_DATABASE=, DEFAULT_LANGUAGE=[rusă]; MERGE

  • ComputerName\NameUser este Numele computerului\Nume utilizator;
  • DIN WINDOWS – specifică că va fi utilizată autentificarea Windows;
  • WITH DEFAULT_DATABASE= – baza de date implicită;
  • DEFAULT_LANGUAGE=[rusă] – limba implicită.

Dezactivarea și activarea autentificărilor în MS SQL Server

Dacă este necesar, puteți dezactiva temporar autentificarea pentru a bloca accesul utilizatorului la server.

Dezactivați ALTER LOGIN TestLogin DISABLE; --Enable ALTER LOGIN TestLogin ENABLE;

Crearea unui utilizator de bază de date în MS SQL Server

Odată ce autentificarea a fost creată, puteți continua să creați un utilizator al bazei de date, de ex. maparea unui utilizator la o autentificare.

Să creăm un utilizator TestLogin și în două moduri, de exemplu. folosind Management Studio și limbajul T-SQL.

Crearea unui utilizator de bază de date utilizând Management Studio

Deschideți Management Studio, găsiți baza de date dorită în browserul de obiecte și deschideți-o cu semnul plus. Apoi, utilizați și semnul plus pentru a deschide elementul „ Siguranță" și faceți clic pe folderul " Utilizatori"clic dreapta și selectați" Creați un utilizator».

Apoi, introduceți numele de utilizator și numele de conectare care corespund acestui utilizator ( in cazul meu numele sunt aceleasi), și indicați, de asemenea, schema implicită ( dacă nu este specificat, schema dbo va fi atribuită).

Să notăm imediat și rolul bazei de date pe care îl va avea acest utilizator. Pe pagina " Calitatea de membru„Am bifat căsuța de lângă rol db_datareader, adică utilizatorul va avea drepturi de a citi datele din tabelele de utilizator. Faceți clic pe " Bine».

Crearea unui utilizator de bază de date utilizând Transact-SQL

Următoarea instrucțiune T-SQL creează un utilizator al bazei de date ( schema implicită dbo) și îi atribuie rolul db_datareader, adică. face același lucru pe care l-am făcut puțin mai devreme în interfața grafică Management Studio.

USE Test GO CREATE USER FOR LOGIN WITH DEFAULT_SCHEMA= GO ALTER ROLE ADAD MEMBER ; MERGE

Astfel, instrucțiunile CREAZA UTILIZATOR folosit pentru a crea un utilizator de bază de date.

Eliminarea utilizatorului bazei de date și autentificarea în MS SQL Server

Pentru a șterge un utilizator de bază de date, puteți scrie o instrucțiune SQL simplă, de exemplu

DROP UTILIZATOR Testlogin;

Sau utilizați instrumentul grafic Management Studio, de ex. în browserul de obiecte, în baza de date dorită, selectați „ Securitate -> Utilizatori" și faceți clic dreapta pe utilizatorul pe care doriți să-l ștergeți și selectați " Șterge».

Notă! Utilizatorii care dețin obiecte securizate nu pot fi eliminați din baza de date.

De asemenea, puteți utiliza instrumentul grafic al Management Studio ( acestea. „Security -> Logins” faceți clic dreapta pe nume, apoi faceți clic pe „Delete”) și instrucțiunea Transact-SQL, adică

DROP LOGIN TestLogin;

Notă! Autentificarea curentă nu poate fi ștearsă, nici autentificarea care deține vreun obiect securizat la nivel de server sau job SQL Server Agent. De asemenea, o autentificare nu poate fi ștearsă dacă utilizatorul este conectat în prezent la sistem. Este posibil să ștergeți o autentificare fără a șterge utilizatorul bazei de date asociat, dar acest lucru va avea ca rezultat utilizatori care nu mai sunt asociați cu conturile lor.

Atât sper, materialul ți-a fost de folos, pa!

În acest articol voi vorbi despre cum să adăugați baze de date noi sau existente la serverul 1C:Enterprise. 8.3 (pentru alte versiuni ale platformei - 8.1 Și 8.2 acțiunile sunt similare). Vor fi luate în considerare opțiunile pentru adăugarea unei baze de informații atât din, cât și prin programul de administrare a serverului 1C:Enterprise (în sistemul de operare Windows). Sunt abordate și unele probleme legate de administrarea bazelor de informații într-un cluster de servere 1C:Enterprise.

1. Adăugarea unei baze de informații din fereastra de lansare 1C:Enterprise

Să creăm o nouă bază de date pe serverul 1C:Enterprise dintr-o configurație standard. Pentru a face acest lucru, lansați „1C: Enterprise” și în fereastra de lansare faceți clic pe „ Adăuga…» pentru a adăuga o bază de informații.

Vrăjitorul pentru adăugarea unei baze de informații va începe, selectați elementul „ Crearea unei noi baze de informații" prin setarea comutatorului corespunzător și făcând clic pe " Mai departe».

În lista de șabloane de configurare instalate, selectați șablonul de care avem nevoie și faceți clic pe „ Mai departe».

Să introducem numele bazei de date așa cum va fi afișat în lista de baze de informații, specificați tipul locației " Pe serverul 1C:Enterprise" și faceți clic pe " Mai departe».

Pe pagina următoare trebuie să specificați parametrii bazei de informații create, și anume:

(În acest exemplu, parametrii sunt selectați în conformitate cu parametrii de instalare a serverului 1C:Enterprise adoptați în articol)

  • Nume cluster de server 1C:Enterprise— de regulă, se potrivește cu numele rețelei computerului pe care este instalat serverul 1C:Enterprise (clusterul central al serverului);
  • Numele bazei de date care este creată în cluster— denumirea prin care va fi accesată baza de informații. Trebuie să fie unic într-un anumit cluster;
  • Conexiune sigură- dezactivat implicit;
  • Tip de SGBD pe care va fi stocată baza de date— în acest exemplu, MS SQL Server;
  • Numele serverului bazei de date— de regulă, constă din numele rețelei computerului în care este instalat serverul de baze de date și numele instanței serverului (dacă există), separate prin semnul „\”;
  • Numele bazei de date de pe serverul bazei de date— pentru comoditate, vom respecta regula conform căreia numele bazei de date trebuie să se potrivească cu numele bazei de informații din cluster. În plus, în cazul utilizării MS SQL Server, primul caracter din numele bazei de date poate fi doar o literă a alfabetului latin sau simbolul „_”, caracterele ulterioare pot fi doar o literă a alfabetului latin, un număr sau simbolurile „_” și „&”, numele trebuie să fie unic într-o anumită instanță de server de bază de date și să nu depășească 63 de caractere. Dacă baza de date există deja pe server, se va folosi baza de date curentă, dacă nu și steag-ul " Creați o bază de date dacă nu există", o nouă bază de date va fi adăugată la serverul bazei de date.
  • Utilizator baze de date— un utilizator SGBD care va deveni proprietarul bazei de date de pe server dacă se creează o nouă bază de date sau care are drepturi de a lucra cu una existentă;
  • Parolă de utilizator— parola utilizatorului în numele căruia va fi accesată baza de date;
  • Compensarea datei— 0 sau 2000. Acest parametru determină numărul de ani care vor fi adăugați la datele când sunt salvate în baza de date Microsoft SQL Server și scăzuți când sunt preluați. Faptul este că tipul DATATIME utilizat de Microsoft SQL Server vă permite să stocați date în intervalul de la 1 ianuarie 1753 până la 31 decembrie 9999. Dacă, atunci când lucrați cu o bază de informații, poate fi necesar să stocați date care preced limita inferioară a acestui interval, compensarea datei ar trebui să fie selectată ca 2000. În plus, dacă soluția aplicației folosește registre de acumulare sau registre contabile (și cel mai probabil acesta va fi cazul), tot în câmpul „offset data trebuie setat la 2000.
  • Setați blocarea sarcinilor programate— setarea steagului vă permite să interziceți executarea sarcinilor programate pe server pentru această bază de informații. Ar trebui instalat în cazul creării de baze de informații de testare, unde implementarea sarcinilor de rutină nu are nicio sarcină practică.

După ce setați toți parametrii de bază de informații, faceți clic pe „ Mai departe».

Și, în sfârșit, specificați parametrii de lansare pentru baza de date creată și faceți clic pe „ Gata» pentru a începe procesul de creare a unei noi baze de informații. În acest caz, pe serverul 1C:Enterprise va fi creată o nouă bază de informații; dacă este necesar, va fi creată o nouă bază de date pe serverul bazei de date, iar datele vor fi încărcate și din șablonul de configurare.

Dacă toate acțiunile de mai sus sunt finalizate cu succes, vrăjitorul își va finaliza munca și vom vedea baza de date nou creată în lista de baze de informații din fereastra de lansare 1C:Enterprise.

2. Adăugarea unei baze de informații din consola de administrare a serverului 1C:Enterprise

Acum să adăugăm o altă bază de informații la clusterul de servere, dar prin „ Administrarea serverelor 1C:Enterprise„(anterior). Îl poți găsi:

Ei bine, în orice caz, snap-in-ul poate fi lansat prin executarea fișierului „ 1CV8 Servers.msc„situat în directorul de instalare 1C:Enterprise din subdirectorul” uzual».

Dacă echipamentul " " este lansat pe același computer unde este instalat serverul 1C:Enterprise, apoi în arborele din stânga, în ramura cu numele de rețea a computerului curent, ar trebui să vedem acest cluster de servere numit " Cluster local" Extinderea filei " Baze de informații„vom vedea toate bazele de informații din acest cluster de servere (de exemplu, baza de date creată prin fereastra de lansare 1C:Enterprise în pasul anterior). Pentru a adăuga o nouă bază de informații, faceți clic dreapta pe această filă și selectați „ Crea» — « Baza de informatii».

Se va deschide fereastra de parametri pentru baza de informații creată. Lista de parametri este aceeași cu cea descrisă mai sus în paragraful 1 al acestei instrucțiuni. După completarea tuturor parametrilor, faceți clic pe „ Bine» pentru a începe procesul de creare a unei noi baze de informații. În acest caz, o nouă bază de informații va fi creată pe serverul 1C:Enterprise și, dacă este necesar, o nouă bază de date va fi creată pe serverul bazei de date.

Dacă toate acțiunile de mai sus sunt finalizate cu succes, fereastra de parametri se va închide și vom vedea baza de date nou creată în lista de baze de informații ale clusterului curent.

Și dacă mergi la programul „Miercuri”. SQL Server Management Studio" și conectați-vă la instanța curentă a MS SQL Server, puteți vedea bazele de date create în pașii anteriori.

3. Proprietățile bazei de informații

Pentru a vizualiza sau modifica parametrii unei anumite baze de informații, trebuie să utilizați „ Administrarea serverelor 1C Enterprise", în lista de baze de informații, faceți clic dreapta pe el și selectați " Proprietăți" Pentru a vă autentifica în consola de administrare, trebuie să utilizați administratori din bazele de informații corespunzătoare. Cu alte cuvinte, această verificare este similară cu autentificarea atunci când vă conectați la o bază de informații prin clientul 1C:Enterprise.

După cum puteți vedea, următorii au fost adăugați la lista de parametri deja familiari nouă:

  • Blocarea începerii sesiunii este activată— un steag care vă permite să activați blocarea începerii sesiunilor cu baza de informații; dacă steag-ul este setat, atunci:
    • Sesiunile existente pot continua să ruleze, să stabilească noi conexiuni și, de asemenea, să ruleze joburi în fundal;
    • Este interzisă stabilirea de noi sesiuni și conexiuni la infobază.
  • startȘi Sfârşit— durata blocării sesiunii;
  • Mesaj— text care va face parte din mesajul de eroare atunci când se încearcă stabilirea unei conexiuni cu o bază de informații blocată;
  • Cod de permisiune— șirul care ar trebui adăugat la parametru /UC la pornirea 1C:Enterprise să se conecteze la baza de informații în ciuda faptului că este blocat;
  • Opțiuni de blocare— text arbitrar care poate fi utilizat în configurații în diverse scopuri;
  • Managementul sesiunilor externe— un șir care descrie parametrii serviciului extern de gestionare a sesiunilor Web;
  • Utilizarea obligatorie a controlului extern— dacă flag-ul este setat, atunci dacă serviciul Web de gestionare a sesiunii externe este indisponibil, apare o eroare și stabilirea conexiunii la infobază este imposibilă;
  • Profil de securitate— dacă specificați un nume de profil, soluția aplicației începe să funcționeze ținând cont de restricțiile impuse de profilul de securitate specificat;
  • Profil de securitate în modul sigur- la fel ca și profilul de securitate, dar se vor impune restricții asupra fragmentelor din soluția aplicației care funcționează în modul sigur.

După modificarea parametrilor necesari, faceți clic pe „ aplica" pentru a salva modificările sau " Bine» pentru a salva și închide fereastra de proprietăți a bazei de informații.

4. Adăugarea unei baze de informații existente la lista de baze de informații din fereastra de lansare 1C:Enterprise

Și, în sfârșit, tot ce trebuie să facem este să-l adăugăm pe cel creat folosind „ Administrarea serverelor 1C Enterprise» infobase la lista de infobaze din fereastra de lansare 1C:Enterprise. De ce în această fereastră faceți clic pe „ Adăuga…" și în vrăjitorul care începe să adauge o bază de informații/grup, selectați elementul corespunzător și faceți clic pe " Mai departe».

Introduceți numele bazei de informații așa cum va fi afișat în listă, selectați tipul de locație a bazei de informații " Pe serverul 1C:Enterprise" și apăsați " din nou Mai departe».

Introduceți adresa clusterului de server 1C:Enterprise și numele bazei de informații, așa cum este definită în acest cluster. Faceți clic pe " Mai departe».

Și, în sfârșit, setați parametrii pentru lansarea bazei de informații și faceți clic pe „ Gata» pentru a finaliza vrăjitorul.

Baza noastră de date a apărut în lista bazelor de date cu informații. Trebuie să înțelegeți că aceasta este o bază de date goală (curată) și apoi ar trebui să încărcați date în ea dintr-un șablon sau dintr-un fișier de date preîncărcat.

Te-a ajutat acest articol?

Există destul de multe articole similare, dar pe acesta l-am scris în primul rând pentru mine, concentrându-mă pe notele care descriu posibile probleme. Sper că articolul va fi de folos altora.
1. Instalați platforma 1C
2. Instalați MS SQL server 2008. În timpul instalării, specificați utilizatorul bazei de date. (care este SA).

După instalare, deschideți panoul de administrare pentru serverele enterprise 1C și vedeți că este gol.
Trebuie să creați un server: Open console root->Central 1C: Enterprise 8.2 servers. Faceți clic dreapta pe el și selectați nou. În meniul derulant, selectați Central Server 1C Enterprise 8.2. În fața noastră se va deschide o fereastră cu 4 câmpuri:
Protocol- protocol prin care vor fi transmise datele
Nume- numele computerului din rețeaua pe care se află serverul
port IP- portul pe care serverul este accesibil
Descriere-Descriere. nu este necesar.

Notă:
Dacă platforma 1C a fost instalată pe un computer și apoi computerul a fost redenumit, atunci nu veți putea ajunge la el, deoarece platforma 1C este o platformă foarte inteligentă și înregistrează numele computerului în anumite fișiere în timpul instalării, dar apoi, când numele computerului se schimbă, platforma nu se va mai rescrie Aceste fișiere sunt necesare pentru funcționarea serviciului RAGENT 1C (se găsesc în serviciile care rulează, prin panoul de administrare Windows Server). Toate acestea sugerează că, pentru a redenumi aceste fișiere, trebuie să opriți serviciul RAGENT. Fișierele în sine sunt localizate în următoarele locuri:
C:\Program Files (x86)\1cv82\srvinfo\srvribrg
C:\Program Files (x86)\1cv82\srvinfo\reg_1541\1CV8Reg
Deschidem aceste fișiere cu notepad și schimbăm manual numele trecut al mașinii în cel actual. Salvați și lansați RAGENT.

Să revenim la setări:
După ce fereastra cu câmpurile este completată, faceți clic pe OK și dacă totul este făcut corect, atunci avem un server numit după numele mașinii pe care se află.

Asa de. Serverul rulează și acum trebuie să creăm o bază de date pe serverul MYSQL și să o conectăm la serverul 1C. Există mai multe moduri - aici voi descrie cele mai simple:
Pe serverul enterprise 1C, deschideți noul nostru server creat făcând clic pe + de lângă numele serverului și pe elementul „BAZE DE INFORMAȚII”, faceți clic dreapta și selectați Nou->Bază de informații
În fața noastră se va deschide o fereastră cu următoarele câmpuri:

Nume-numele bazei noastre de date pe serverul 1C (De regulă, mulți oameni îl scriu la fel ca în câmpul bazei de date, pentru a nu se încurca)
Descriere-Descriere
Conexiune sigură-dezactivat implicit. îl puteți activa, dar apoi sarcina de pe server va crește
Server de baze de date-daca serverul este pe acelasi server, atunci indicati (local) exact asa intre paranteze, daca nu este pe acest server, atunci indicati IP-ul serverului
tip DBMS-Selectați tipul MS SQL
Bază de date-numele bazei de date pe serverul MS SQL. Dacă nu există o bază de date, puteți bifa una dintre casete de selectare și va fi creată
Utilizator de server de baze de date- Indicăm fie utilizatorul pe care l-am creat în timpul instalării, fie creăm un utilizator separat în MS SQL, îi atribuim drepturi și îl înregistrăm aici.
Parola utilizatorului serverului bazei de date-parola
Permite eliberarea de licențe de către serverul 1C Enterprise-alege da
O tara-Alege o tara
Compensarea datei-setat la 0
Caseta de bifat „Creează o bază de date în caz de absență”-aceeași casetă de selectare pentru crearea unei baze de date dacă aceasta nu există
Caseta de bifat „Setați blocarea sarcinilor programate”- nu bifați căsuța

Faceți clic pe OK și vedem că serverele sunt configurate și apare o bază de informații sub numele pe care i-am dat-o în fila „Baze de informații”.

Pentru a configura Backup trebuie să deschidem STUDIUL DE MANAGEMENT Microsoft SQL.
Introduceți datele de conectare și conectați-vă la server.
În fața noastră este consola administrativă. ÎN Explorator de obiecte deschide o filă management iar în ea vedem Planuri de întreținere. Aici vom crea BackUP-ul de care avem nevoie. Ca de obicei, faceți clic dreapta pe Planuri de întreținere->plan nou de întreținere. Fila subplan va apărea în fereastra principală și sub Explorator de obiecte va apărea o altă fereastră Trusa de sculeîn care este cuibărit Planuri de întreținere Sarcini. În ea vom alege Faceți o copie de rezervă a activității bazei de date făcând clic pe el de 2 ori. Acesta va fi transferat în fereastra principală. Facem click pe el de 2 ori si in fata noastra apare o fereastra, din nou cu campuri in care putem alege ce Back Up sa facem, ce baza de BackUp sa folosim si unde sa o salvam. După finalizarea setărilor, faceți clic pe Ok.

Notă:
Când salvați Back Up într-un folder de rețea (apropo, va trebui să înregistrați calea manual, deoarece fereastra de selecție a directorului vede doar resursele locale), monitorizați drepturile de acces și, în același timp, monitorizați ce fel de autentificare au pe serverul MySql, pentru că dacă autentificarea nu este setată la conturile Windows, ci pentru un utilizator DBMS intern și dacă ai serverul AD activat, atunci BackUp va arunca o eroare când vei încerca să o executi, deoarece va face acest lucru în numele utilizatorului intern DBMS și AD nu îl va lăsa să treacă nicăieri, cu excepția computerului local.

După ce ați configurat calea, baza și tipul BackUp, trebuie să configurați programarea. Pentru a face acest lucru, există un semn în fereastra principală deasupra sarcinii pe care ați creat-o Subplan. La sfârșitul semnului (în dreapta) există o pictogramă calendar. Făcând clic pe el, veți fi dus la setările de program. Bifând casetele zilelor și setând ora, veți configura un program. Făcând dublu clic pe câmpul numit Subplan puteți schimba numele sarcinii. După ce ați configurat totul, accesați Fișier-> Salvează tot. După salvare, în planurile de întreținere va apărea o sarcină cu numele dvs. pe care ați dat-o la BackUp.

După finalizarea configurării, asigurați-vă că verificați funcționarea. Pentru a face acest lucru, faceți clic dreapta pe Sarcina creată și executați Exicute.

Notă:
Dacă Exicute rulează cu o eroare, citiți erorile pe care vi le va da Studio și, în primul rând, verificați dacă rulați agent SQL server. El este cel care îndeplinește sarcinile și funcția Exicute apelează la el pentru a finaliza sarcinile. Dacă nu rulează, încercarea de execuție va eșua. Pentru a vedea dacă agentul funcționează sau nu în Studio în Object Explorer, accesați fila Agent SQL Server. Dacă pictograma glonț are un cerc roșu cu o cruce, înseamnă că agentul a fost oprit. Îl puteți porni făcând clic dreapta pe el și selectând opțiunea START din meniul contextual.

Se ia în considerare sistemul de securitate adoptat în limbajul SQL. Sunt prezentate regulile generale pentru controlul accesului. Descrie moduri de autentificare și componente ale structurii de securitate (utilizatori, roluri de bază de date), administrarea sistemului de securitate (crearea și gestionarea conturilor, gestionarea utilizatorilor și rolurilor). Este dată o definiție a drepturilor utilizatorului de a accesa obiectele bazei de date. Sunt luate în considerare drepturile implicite, problemele de refuz al accesului și refuzul implicit al accesului, precum și conflictele de acces.

Managementul utilizatorilor bazei de date

Sistem stabil managementul utilizatorilor- starea cerută securitatea datelor, stocat în orice SGBD relațional. Nu există o singură comandă standard în SQL crearea de utilizatori baze de date - fiecare implementare face acest lucru diferit. În unele implementări, aceste comenzi speciale au anumite asemănări, în timp ce în altele sintaxa lor diferă semnificativ. Cu toate acestea, indiferent de implementarea specifică, toate principiile de bază sunt aceleași.

Managementul utilizatorilor în mediul MS SQL Server

Să luăm în considerare întrebarea crearea de utilizatoriîn mediul MS SQL Server.

După proiectarea structurii logice a bazei de date, a relațiilor dintre tabele, a constrângerilor de integritate și a altor structuri, este necesar să se determine gama de utilizatori care vor avea acces la baza de date.

Sistemul server SQL are o configurație pe două niveluri de restricții de acces la date. La primul nivel este necesar să se creeze așa-numitul contul utilizatorului(login), care îi permite să se conecteze la serverul propriu-zis, dar nu îi oferă automat acces la bazele de date. La al doilea nivel, trebuie creată o înregistrare de utilizator pentru fiecare bază de date de server SQL pe baza contului. Pe baza drepturilor acordate utilizatorului ca utilizator al bazei de date (utilizator), numele său de conectare (login) obține acces la baza de date corespunzătoare. În baze de date diferite, autentificarea aceluiași utilizator poate avea nume de utilizator identice sau diferite, cu drepturi de acces diferite. Cu alte cuvinte, cu ajutorul contul utilizatorului se realizează o conexiune la serverul SQL, după care nivelurile de acces ale acestuia sunt determinate pentru fiecare bază de date separat.

În sistemul SQL server, există obiecte suplimentare - roluri, care determină nivelul de acces la obiectele SQL server. Acestea sunt împărțite în două grupe: cele alocate conturi de utilizator servere și utilizate pentru a restricționa accesul la obiectele bazei de date.

Deci, la nivel de server, sistemul de securitate funcționează cu următoarele concepte:

  • autentificare ;
  • cont;
  • rolurile de server încorporate.

La nivelul bazei de date se aplică următoarele concepte;

  • utilizatorul bazei de date;
  • rol fix de bază de date;
  • personalizat rolul bazei de date.

Moduri de autentificare

SQL Server oferă două moduri autentificarea utilizatorului:

  • modul de autentificare folosind Windows NT/2000;
  • autentificare în mod mixt (autentificare Windows NT și autentificare SQL Server).

Administrarea sistemului de securitate

Pentru crearea unui utilizatorÎn mediul MS SQL Server ar trebui parcurși următorii pași:

  1. Creați în baza de date contul utilizatorului prin specificarea unei parole și a unui nume implicit al bazei de date (sp_addlogin).
  2. Adăugați acest utilizator la toate bazele de date necesare (sp_adduser).
  3. Acordați-i privilegiile corespunzătoare în fiecare bază de date (comanda GRANT).

Creați un cont nou se poate face folosind o procedură de sistem stocată:

sp_addlogin [@login=] „cont” [, [@password=] „parolă”] [, [@defdb=] „default_database”]

După finalizarea autentificării și a primirii ID de autentificare utilizator este considerat înregistrat și i se acordă acces la server. Pentru fiecare bază de date ale cărei obiecte intenționează să le acceseze, contul utilizatorului(login) este asociat cu utilizatorul (utilizatorul) unei anumite baze de date, care se realizează prin procedura:

sp_adduser [@loginame=] „cont” [, [@name_in_db=] „nume utilizator”] [, [@grpname=] „nume rol”]

Procedura stocată vă permite să mapați un cont Windows NT la un nume de utilizator:

sp_grantdbaccess [@login=] „cont” [, [@name_in_db=]„nume utilizator”]

Utilizatorul care creează un obiect în baza de date (tabel, procedură stocată, vizualizare) devine proprietarul acestuia. Proprietarul obiectului(proprietarul obiectului bazei de date dbo) are toate drepturile de acces la obiectul pe care l-a creat. Pentru ca un utilizator să creeze un obiect, proprietarul bazei de date (dbo) trebuie să acorde utilizatorului drepturile corespunzătoare. Numele complet al obiectului creat include numele utilizatorului care l-a creat.

Proprietarul obiectului nu are o parolă specială sau drepturi speciale de acces. El are implicit controlul deplin, dar trebuie să acorde în mod explicit acces altor utilizatori.

SQL Server vă permite să transferați proprietatea de la un utilizator la altul utilizând procedura:

sp_changeobjectowner [@objname=] 'nume_obiect' [@newowner=] 'nume_proprietar'

Un rol vă permite să combinați utilizatorii care îndeplinesc aceleași funcții într-un singur grup.

SQL Server implementează două tipuri de roluri standard: la nivel de server și la nivel de bază de date. La instalarea SQL Server, sunt create roluri fixe de server (de exemplu, administrator de sistem cu dreptul de a efectua orice funcții ale serverului SQL) și roluri fixe de bază de date (de exemplu, db_owner cu acces deplin la baza de date sau db_accessadmin cu dreptul de a adăuga și ștergeți utilizatori). Printre rolurile fixe ale bazei de date se numără rolul public, care are un scop special deoarece membrii săi sunt toți utilizatorii care au acces la baza de date.

Puteți include orice cont SQL Server (autentificare) sau cont Windows NT în orice rol de server.

Rolurile bazei de date vă permit să combinați utilizatorii într-o singură unitate administrativă și să lucrați cu ea ca un utilizator obișnuit. Puteți atribui drepturi de acces la obiectele bazei de date unui anumit rol, care acordă automat tuturor membrilor acelui rol aceleași drepturi.

Rolul bazei de date poate include utilizatori SQL Server, roluri SQL Server și utilizatori Windows NT.

Diverse acțiuni în legătură cu rolul sunt efectuate folosind proceduri speciale:

  • crearea unui nou rol:

    sp_adrole [@rolename=] „nume_rol” [, [@ownername=] „nume_proprietar”]

  • adăugarea unui utilizator la un rol:

    sp_adrolemember [@rolename=] „nume_rol”, [@membername=] „nume_utilizator”

  • eliminarea unui utilizator dintr-un rol:

    sp_droprolemember [@rolename=] „nume_rol”, [@membername=] „nume_utilizator”

  • eliminarea unui rol:

    sp_droprole [@rolename=] „nume_rol”

Controlul accesului la date

Definirea privilegiilor într-un standard de limbă

Fiecare SGBD trebuie să suporte un mecanism pentru a se asigura că numai acei utilizatori care au permisiunea corespunzătoare pot accesa baza de date. Limbajul SQL include instrucțiuni GRANT și REVOKE concepute pentru a proteja tabelele dintr-o bază de date. Mecanismul de protecție se bazează pe utilizare ID-uri de utilizator, drepturile de proprietate și privilegiile acordate acestora.

ID-ul de utilizator este un identificator SQL comun folosit pentru a identifica un utilizator al bazei de date. Fiecărui utilizator trebuie să i se atribuie propriul ID, atribuit de administratorul bazei de date. Din motive evidente de siguranță ID-ul de utilizator asociate de obicei cu o anumită parolă. Fiecare instrucțiune SQL executată de SGBD este executată în numele unui utilizator. ID-ul de utilizator determină la ce obiecte de bază de date poate face referire un utilizator și ce operațiuni pe acele obiecte este autorizat să le efectueze.

Fiecare obiect creat în mediul SQL are propriul proprietar, care este inițial singura persoană care știe despre existența acestui obiect și are dreptul de a efectua orice operațiuni cu acesta.

Privilegiile sau drepturile sunt acțiuni pe care un utilizator are dreptul să le efectueze în legătură cu o anumită tabelă sau vizualizare a bazei de date. Standardul SQL definește următorul set de privilegii:

  • SELECT – dreptul de a selecta datele din tabel;
  • INSERT – dreptul de a introduce noi rânduri în tabel;
  • UPDATE – dreptul de a modifica datele din tabel;
  • DELETE – dreptul de a șterge rânduri din tabel;
  • REFERINȚE – dreptul de a face referire la coloanele din tabelul specificat în descrierile cerințelor de suport pentru integritatea datelor;
  • UTILIZARE – dreptul de a utiliza domenii, validări și seturi de caractere.

Privilegiile INSERT și UPDATE pot fi limitate la anumite coloane dintr-un tabel, caz în care utilizatorului îi este permis doar să modifice valorile acelor coloane. În mod similar, privilegiul REFERENCES poate fi aplicat exclusiv coloanelor individuale ale unui tabel, permițând ca numele acestora să fie folosite în declarații de integritate a datelor, cum ar fi clauzele CHECK și FOREIGN KEY incluse în definiția altor tabele, în timp ce alte coloane vor fi interzise să fie folosite. în scopuri similare.

Când un utilizator creează un tabel nou utilizând instrucțiunea CREATE TABLE, el devine automat proprietarul acestuia și primește un set complet de privilegii asupra acestuia pe care alți utilizatori nu le au inițial. Pentru a le acorda acces, proprietarul trebuie să le acorde în mod explicit drepturile necesare, ceea ce se face prin utilizarea declarației GRANT.

Prin crearea unei vizualizări folosind instrucțiunea CREATE VIEW, utilizatorul devine automat proprietarul acelei vizualizări și, de asemenea, are drepturi depline. Pentru a crea o vizualizare, utilizatorul trebuie doar să aibă privilegiul SELECT pe toate tabelele incluse în ea și privilegiul REFERENȚE pe toate coloanele la care se face referire în definiția acestei vederi. Utilizatorul va primi privilegii INSERT, UPDATE și DELETE pe vizualizarea creată numai dacă are privilegiile corespunzătoare pe toate tabelele utilizate în vizualizare.

Acordarea de privilegii utilizatorilor

Declarația GRANT este folosită pentru acordarea de privilegiiîmpotriva obiectelor de bază de date numite către utilizatori specificați. Este de obicei folosit de proprietarul mesei pentru asigurarea accesului altor utilizatori. Declarația GRANT are următorul format:

<предоставление_привилегий>::= GRANT (<привилегия>[,...n] | TOATE PRIVILEGIILE) ON object_name TO (<идентификатор_пользователя>[,...n]| PUBLIC) [CU OPȚIUNE DE GRANT]

Parametru<привилегия>reprezinta:

<привилегия>::= (SELECT | ȘTERGE | INSERT [(nume_coloană[,...n])] | UPDATE [(nume_coloană[,...n])]) | REFERINȚE [(nume_coloană[,...n])] | UTILIZARE)

Pentru simplitate, puteți specifica cuvântul cheie ALL PRIVILEGES în instrucțiunea GRANT, care va acorda utilizatorului specificat toate privilegiile existente fără a fi nevoie să le enumerați. În plus, această declarație poate include cuvântul cheie PUBLIC, adică Asigurarea accesului de tipul specificat nu numai tuturor utilizatorilor existenți, ci și tuturor celor care vor fi definiți ulterior în baza de date.

Parametrul object_name poate fi folosit ca nume al unui tabel de bază de date, vizualizare, domeniu, set de caractere, verificare.

Cu OPȚIUNEA CU GRANT, utilizatorii specificati în declarația GRANT au dreptul de a transfera toate furnizate acestea în raport cu obiectul de privilegiu specificat altor utilizatori, care, la rândul lor, vor fi înzestrați cu exact același drept de a-și transfera puterile. Dacă acest parametru nu este specificat, destinatarul privilegiului nu își va putea transfera drepturile altor utilizatori. În acest fel, proprietarul obiectului poate controla în mod clar cui i s-a acordat acces la obiect și ce permisiuni le sunt acordate.

Revocarea privilegiilor acordate utilizatorilor

În limbaj SQL pentru revocarea privilegiilor, furnizate utilizatorilor prin instrucțiunea GRANT, este utilizată instrucțiunea REVOKE. Folosind acest operator, toate sau unele dintre privilegiile obținute anterior de utilizatorul specificat pot fi revocate. Declarația REVOKE are următorul format:

<отмена_привилегий>::= REVOCA (<привилегия>[,...n] | TOATE PRIVILEGIILE) PE nume_obiect DE LA (<идентификатор_пользователя>[,...n]| PUBLIC)

Cuvântul cheie ALL PRIVILEGES înseamnă că toate privilegiile pentru utilizatorul specificat sunt revocate. furnizate a fost introdus anterior de utilizatorul care a introdus acest operator. Clauza opțională GRANT OPTION FOR permite ca toate privilegiile transmise în instrucțiunea GRANT originală de WITH GRANT OPTION, indiferent de privilegiile în sine.

Dacă cuvântul cheie RESTRICT este specificat în instrucțiune, comanda REVOKE poate avea succes numai dacă privilegiile enumerate în instrucțiune nu ar determina niciun alt utilizator să aibă așa-numitele privilegii „reținute”. Opțiunea CASCADE elimină orice privilegii care ar putea rămâne altfel altor utilizatori.

Privilegiile „reținute” sunt cele care rămân la utilizatorul căruia i-au fost acordate cândva folosind parametrul GRANT OPTION.

Deoarece prezența unui privilegiu este necesară pentru a crea anumite obiecte, împreună cu ștergerea acestuia, puteți pierde dreptul prin utilizarea căruia a fost creat acest sau acel obiect (astfel de obiecte se numesc „abandonate”). Dacă instrucțiunea REVOKE poate duce la obiecte abandonate (cum ar fi vizualizări), dreptul va fi revocat dacă nu este specificat cuvântul cheie CASCADE. Dacă cuvântul cheie CASCADE este prezent în instrucțiune, atunci instrucțiunile DROP vor fi emise automat pentru orice obiecte abandonate care apar atunci când instrucțiunea originală REVOKE este executată.

Privilegiile care au fost acordate utilizatorului specificat de către alți utilizatori nu pot fi afectate de declarația REVOKE. Prin urmare, dacă un alt utilizator a acordat și unui anumit utilizator un privilegiu amovibil, atunci utilizatorul specificat își va păstra dreptul de a accesa tabelul corespunzător. De exemplu, să presupunem că utilizatorul A și utilizatorul E au avut permisiunea INSERT pe tabelul Produs. Utilizatorul A a acordat privilegiul INSERT utilizatorului B pentru tabelul Produs, specificând WITH GRANT OPTION (pasul 1). Utilizatorul B a transferat acest privilegiu utilizatorului C (pasul 2). Apoi utilizatorul C a primit-o de la utilizatorul E (pasul 3). Apoi, utilizatorul C a acordat privilegiul menționat utilizatorului D (pasul 4). Când utilizatorul A revocă privilegiul INSERT pentru utilizatorul B, nu poate fi inversat pentru utilizatorul C deoarece a primit-o deja de la utilizatorul E. Dacă utilizatorul E nu ar fi acordat acest privilegiu utilizatorului C, atunci eliminarea privilegiului utilizatorului B ar avea ca efect eliminarea în cascadă a privilegiilor pentru utilizatorii C și D (vezi Tabelul 17.1).

Implementarea drepturilor de acces la obiectele bazei de date în mediul MS SQL Server

Categorii de drepturi în mediul MS SQL Server

La conectarea la SQL Server, toate acțiunile posibile ale utilizatorilor sunt determinate de drepturile (privilegii, permisiuni) acordate contului, grupului sau rolului lor din care fac parte.

Drepturile pot fi împărțite în trei categorii:

  • drepturi de acces la obiecte;
  • drepturi de a executa comenzi;
  • drepturi implicite.
Tabelul 17.1.
Utilizatorul AUtilizatorul BUtilizatorul CUtilizatorul DUtilizatorul E
GRANT INSERT PE PRODUS LA B CU OPȚIUNEA GRANT Obținerea dreptului
Obținerea drepturilor de la B. Obținerea dreptului de la E GRANT INSERT PE PRODUS LA C CU OPȚIUNEA GRANT
Acordați inserare pe produs către D Obținerea dreptului
REVOCA INSERTUL PE Produs LA CASCADA B Anularea drepturilorRezervarea drepturilorRezervarea drepturilorRezervarea drepturilor

Lucrul cu date și executarea procedurilor stocate necesită o clasă de acces numită drepturi de acces la obiecte baze de date. Obiectele înseamnă tabele, coloane de tabel, vizualizări, proceduri stocate.

Diferite obiecte au seturi diferite de drepturi de acces la ele:

  • SELECT, INSERT, UPDATE, DELETE, REFERENCE – pentru un tabel sau vizualizare;
  • SELECTARE , UPDATE – pentru o anumită coloană a unui tabel sau vizualizare;
  • EXECUTE – pentru proceduri și funcții stocate.

Dreptul INSERT vă permite să inserați noi rânduri într-un tabel sau vizualizare și este acordat doar la nivel de tabel sau vizualizare; nu poate fi emis la nivel de coloană.

Dreptul UPDATE este emis fie la nivel de tabel, care vă permite să modificați toate datele din acesta, fie la nivelul unei coloane individuale, care vă permite să modificați datele doar în limitele acesteia.

Dreptul DELETE vă permite să ștergeți rânduri dintr-un tabel sau vizualizare; este acordat doar la nivel de tabel sau vizualizare, dar nu poate fi acordat la nivel de coloană.

Dreptul SELECT permite selectarea datelor și poate fi emis atât la nivel de tabel, cât și la nivelul unei coloane individuale.

Dreptul REFERENȚE oferă posibilitatea de a face referire la un obiect specificat. Când este aplicat la tabele, permite crearea de chei străine care fac referire la cheia primară sau la coloana unică a tabelului respectiv.

Acordarea drepturilor

Pentru condus permisiunea utilizatorului de a accesa obiecte se folosește comanda baza de date:

<предоставление_привилегий>::= GRANT ( TOATE [ PRIVILEGIILE] |<привилегия>[,...n]) ( [(nume_coloană [,...n])] ON (nume_tabel | nume_vizualizare) | ACTIVAT (nume_tabel | nume_vizualizare ) ([nume_coloană [,...n])] | ON (nume_procedură_stocat) | extern_procedure_name)) TO (nume_utilizator | nume_grup | nume_rol) [,...n]

Parametru<привилегия>

<привилегия>::= (SELECTARE | ȘTERGERE | INSERARE | ACTUALIZARE | EXECUTARE | REFERINȚE )

Opțiunea WITH GRANT OPTION va ajuta utilizatorul căruia îi acordați drepturi să acorde drepturi de acces la obiect altor utilizatori. Utilizarea acestuia necesită o îngrijire specială, deoarece proprietarul pierde controlul asupra acordarea de drepturi pentru accesul altor utilizatori. Cel mai bine este să limitați cercul de utilizatori care au capacitatea gestionează atribuirea drepturilor.

Parametru opțional AS (nume_grup | nume_rol) vă permite să specificați participarea utilizatorului într-un rol care oferă acordarea de drepturi alți utilizatori.

Singurul drept de acces care poate fi acordat unei proceduri stocate este dreptul de a o executa (EXECUTE). Desigur, pe lângă aceasta, proprietarul procedurii stocate poate vizualiza și modifica codul acesteia.

Puteți acorda unei funcții dreptul de a o executa și, de asemenea, acordați dreptul REFERENȚE, ceea ce va face posibilă asocierea funcției cu obiectele la care se referă. O astfel de legare va preveni modificări ale structurii obiectelor care ar putea duce la întreruperea funcției.

Permisiuni pentru a executa comenzi SQL

Această clasă de drepturi controlează capacitatea de a crea obiecte în baza de date, baza de date în sine și de a efectua proceduri de backup. Puteți folosi următoarea comandă pentru a furniza drepturi de a executa comenzi SQL:

<предоставление_права_выполнения>::= GRANT (TOATE |<команда>

Parametru<команда>este următoarea structură:

<команда>::= (CREAȚI BAZĂ DE DATE | CREAȚI TABEL | CREAȚI VIZUALIZARE | CREATE IMPACT | CREAZĂ REGULĂ | CREAZĂ PROCEDURĂ | BACKUP BAZĂ DE DATE | BACKUP Jurnal | TOATE )

Astfel, puteți acorda dreptul de a crea baze de date, tabel, vizualizare, implicită, regulă, procedură stocată, backup bazei de date și jurnal de tranzacții sau acordați toate drepturile de mai sus simultan.

Drepturi implicite

Unele acțiuni nu necesită permisiune explicită și sunt disponibile implicit. Aceste acțiuni pot fi efectuate numai de membrii rolurilor de server sau de proprietarii obiectelor din baza de date.

Drepturile implicite nu sunt acordate direct utilizatorului; ele sunt acordate numai în anumite circumstanțe. De exemplu, un utilizator poate deveni proprietarul unui obiect de bază de date numai dacă el creează el însuși obiectul sau dacă altcineva îi transferă proprietatea asupra obiectului său. Astfel, proprietarul obiectului va primi automat drepturi de a efectua orice acțiuni cu obiectul, inclusiv Asigurarea accesului la obiect către alți utilizatori. Aceste drepturi nu sunt specificate nicăieri; doar faptul de a deține obiectul vă permite să efectuați orice acțiuni.

Interzicerea accesului

Securitatea SQL Server este ierarhică, astfel încât rolurile bazei de date includ conturi și grupuri Windows NT, utilizatori SQL Server și roluri. Utilizatorul, la rândul său, poate participa în mai multe roluri și poate avea simultan drepturi de acces diferite pentru diferite roluri. Când unul dintre rolurile utilizatorului are permisiunea de a accesa date, utilizatorul are automat aceleași drepturi. Cu toate acestea, dacă este nevoie, utilizatorului i se poate refuza accesul la date sau comenzi, atunci toate permisiunile de acces care i-au fost acordate la orice nivel al ierarhiei sunt revocate. Acest lucru asigură că accesul rămâne interzis, indiferent de permisiunile acordate la un nivel superior.

Pentru refuzul accesului

<запрещение_доступа>::= DENY (TOATE | |<привилегия>[,...n]) ( [(nume_coloană [,...n])] ON (nume_tabel | nume_vizualizare) | ON (nume_tabel | nume_vizualizare ) [nume_coloană [,...n])] | ON (nume_procedură_stocat | nume_procedură_externă)) TO (nume_utilizator | nume_grup | nume_rol) [,...n]

Parametrul CASCADE vă permite să revocați drepturi nu numai unui anumit utilizator, ci și tuturor celor cărora acesta le-a acordat drepturi similare.

Pentru a interzice executarea comenzilor SQL, utilizați următorul operator:

<запрещение_выполнения>::= DENY (TOATE |<команда>[,...n]) TO (nume utilizator | nume grup | nume rol) [,...n]

Refuzarea accesului implicit

Respingere implicită ca refuzul accesului cu deosebirea că operează numai la nivelul la care este definit. Dacă utilizatorul se află la un anumit nivel accesul este implicit refuzat, îl poate obține în continuare la un alt nivel al ierarhiei prin apartenența la un rol care are drepturi de vedere. În mod implicit, accesul la datele utilizatorului este implicit refuzat. Pentru refuzul implicit al accesului Comanda folosită pentru obiectele bazei de date este:

<неявное_отклонение_доступа>::= REVOCA (TOATE [PRIVILEGILE]| |<привилегия>[,...n]) ( [(nume_coloană [,...n])] ON (nume_tabel | nume_vizualizare) | ON (nume_tabel | nume_vizualizare ) [nume_coloană [,...n])] | ON (nume_procedură_stocat | nume_procedură_externă)) TO | FROM (nume utilizator | nume grup | nume rol)[,...n]

Pentru abatere implicităpermisiuni pentru a executa comenzi Comanda SQL folosită este următoarea:

<неявное_отклонение_разрешения>::= REVOCA (TOATE |<команда>[,...n]) FROM (nume utilizator | nume grup | nume rol)[,...n]

Semnificația parametrilor este similară cu parametrii comenzilor GRANT și DENY. Parametrul GRANT OPTION FOR este utilizat atunci când este necesară revocarea dreptului, furnizate cu parametrul WITH GRANT OPTION al comenzii GRANT. Utilizatorul își păstrează permisiunea de a accesa obiectul, dar își pierde capacitatea de a acorda acea permisiune altor utilizatori.

Conflicte de acces

Permisiuni, furnizate rolurile sau grupurile sunt moștenite de membrii lor. Deși utilizatorul poate acces permis Prin apartenența la un rol, unui rol la un alt nivel i se poate interzice să acționeze asupra unui obiect. În acest caz, apare conflict de acces.

Când se rezolvă conflicte de acces SQL Server este ghidat de următorul principiu: permisiunea de a Asigurarea accesului are cea mai mică prioritate și refuzul accesului- cel mai inalt. Aceasta înseamnă că datele pot fi accesate doar în mod explicit. furnizarea Fără refuzul accesului la orice alt nivel al ierarhiei de securitate. Dacă accesul nu este acordat în mod explicit, utilizatorul nu va putea lucra cu datele.

Exemplul 17.1. Creați o nouă bază de date, un nou utilizator pentru această bază de date, oferindu-i toate drepturile.

Crearea de către administrator a unei noi -- bază de date CREATE DATABASE basa_user -- crearea unui nou utilizator cu -- nume UserA și parola '123' -- baza de date implicită pentru -- user UserA va fi o bază de date -- numită basa_user. sp_addlogin "UserA","123","basa_user" -- mergeți la baza de date basa_user USE basa_user -- adăugați la baza de date curentă -- (basa_user) un utilizator numit -- userA sp_adduser "UserA" -- oferă utilizatorului userA -- în baza de date baza_user toate drepturile ACCORDĂ TOATE UtilizatoruluiA Exemplul 17.1. Crearea unei noi baze de date, a unui nou utilizator pentru această bază de date, acordându-i toate drepturile.

Exemplul 17.2. Folosind roluri.

Să creăm rolul stud și să includem doi utilizatori user1 și user2 în acest rol:

sp_adrole "stud" sp_adrolemember "stud","user1" sp_adrolemember "stud","user2"

Să acordăm drepturi rolului stud și direct utilizatorului2:

GRANT SELECT, INSERT ON Produs TO stud GRANT SELECT, INSERT ON Produs TO user2

După executarea acestor comenzi, utilizatorii user1 și user2 pot executa comenzile pentru a selecta și adăuga o înregistrare la tabelul de produse.

Să suspendăm dreptul de inserare în tabelul de produse pentru rolul stud:

REVOCĂ INSERTUL PE Produs PE știftul

După executarea comenzii anterioare, user1 pierde dreptul de a introduce o înregistrare, iar user2 își păstrează acest drept, deoarece dreptul de inserare îi este acordat în mod explicit.

Hai să executăm comanda

DENY INSERT ON Produs TO stud.

După executarea acestei comenzi, ambii utilizatori sunt lipsiți de dreptul de a introduce în tabelul Produs.