Transact-sql, roluri

Atunci când mai mulți utilizatori sunt obligați să efectueze acțiuni similare într-o bază de date specifică și nu sunt membri ai grupului Windows corespunzător, puteți utiliza rolul bazei de date care definește grupul de utilizatori din baza de date care poate accesa aceleași obiecte bază de date.

Membrii rolului bazei de date pot fi oricare dintre următoarele:

grupuri și conturi Windows;

conectați numele de conectare în SQL Server;

Arhitectura de securitate a motorului de baze de date include mai multe roluri "sistem" care au permisiuni explicite speciale. În plus față de rolurile definite de utilizatori, există două tipuri de roluri predefinite: roluri de server fix și roluri fixe de baze de date.

Role de server fixe

Rolele de server fix sunt definite la nivel de server și, prin urmare, sunt situate în afara bazelor de date aflate în proprietatea serverului de baze de date. Tabelul de mai jos prezintă rolurile serverului fix și o scurtă descriere a acțiunilor pe care membrii acestor roluri le pot efectua:

Role de server fixe

Rolul serverului fix

Membrii unui rol de server fix pot fi adăugați și șterși în două moduri:

utilizând mediul Management Studio;

utilizând instrucțiunile din limba Transact-SQL.

Pentru a adăuga numele de înregistrare membrilor rolului serverului fix prin Management Studio, extindeți nodul serverului în browserul de obiecte, folderul "Securitate" din acesta și extindeți dosarul "Logins". Selectați numele de utilizator pentru care doriți să schimbați rolul, faceți clic dreapta și selectați Proprietăți din meniul contextual. În fereastra Proprietăți de conectare care se deschide, faceți clic pe fila Role server în care puteți specifica sau șterge un utilizator într-un rol fix:

Transact-sql, roluri

Pentru a adăuga și elimina membri într-un rol de server fix folosește un limbaj de instrucțiuni Transact-SQL CREATE SERVER ROLE și DROP SERVER ROLE respectiv. Și pentru a schimba calitatea de membru în rolul serverului, utilizați instrucțiunea ALTER SERVER ROLE.

Rolele de server fix nu pot fi adăugate, șterse sau redenumite. În plus, numai membrii de roluri de server fix pot efectua proceduri de sistem pentru a adăuga sau elimina numele de înregistrare în rol.

Numele de login sa

Numele de conectare sa trebuie utilizat numai atunci când nu există altă modalitate de a intra în sistemul de baze de date.

Fonduri fixe de baze de date

Rolele fixe de baze de date sunt definite la nivelul bazei de date și, prin urmare, există în fiecare bază de date deținută de serverul de baze de date. Tabelul de mai jos prezintă rolurile bazei de date fixe și o scurtă descriere a acțiunilor pe care membrii acestor roluri le pot efectua.

Fonduri fixe de baze de date

Baza de date fixă ​​a bazei de date

Utilizatorii care nu pot schimba datele din baza de date

Membrii rolurilor de baze fixe pot efectua diferite acțiuni. Pentru informații detaliate despre acțiunile pe care le pot realiza membrii fiecărui rol de bază de date fix, consultați documentația online.

Baza de date fixă ​​a bazei publice

În plus față de rolurile de bază de date fixe listate în tabel, există un rol special fix pentru baza de date publică. Rolul fix al bazei de date publice este un rol special, din care toți membrii legitimi ai bazei de date fac parte. Acesta acoperă toate permisiunile implicite pentru utilizatorii bazei de date. Acest lucru permite tuturor utilizatorilor care nu au permisiunile necesare să acorde un set de permisiuni (de obicei limitate). Rolul public oferă toate permisiunile implicite pentru utilizatorii bazei de date și nu poate fi eliminat. Utilizatorilor, grupurilor sau rolurilor nu li se poate atribui calitatea de membru în acest rol, deoarece îl au în mod implicit.

În mod implicit, rolul public permite utilizatorilor să efectueze următoarele acțiuni:

vizualizează tabelele de sistem și afișează informații din baza de date sistem master folosind anumite proceduri de sistem;

executa instrucțiuni pentru care nu sunt necesare permisiuni, de exemplu, PRINT.

Atribuirea unui utilizator unui rol de bază de date fix

Pentru a atribui un membru al bazei de date pentru baza de date fixă ​​utilizând Management Studio, extindeți serverul și dosarul Baze de date și apoi, în baza de date, extindeți dosarul Securitate, dosarul Roluri și dosarul Baze de date. Faceți clic dreapta pe rolul în care doriți să adăugați utilizatorul și selectați Proprietăți din meniul contextual. În caseta de dialog Proprietăți roluri bază de date, faceți clic pe butonul Adăugați și selectați utilizatorii cărora doriți să le acordați calitatea de membru. Acest utilizator este acum membru al acestui rol de bază de date și moștenește toți parametrii de acces acordați acestui rol.

Role de aplicație

Rolurile de aplicații vă permit să impuneți securitatea pentru o anumită aplicație. Cu alte cuvinte, rolurile aplicației permit aplicației să-și asume responsabilitatea pentru autentificarea utilizatorului, mai degrabă decât pentru sistemul de baze de date. De exemplu, dacă angajații companiei pot schimba numai datele angajaților printr-o aplicație (mai degrabă decât prin Transact-SQL sau o altă limbă), puteți crea un rol de aplicație pentru această aplicație.

Rolul aplicațiilor diferă semnificativ față de toate celelalte tipuri de roluri. În primul rând, rolurile de aplicație nu au membri, deoarece folosesc numai aplicații și, prin urmare, nu au nevoie să acorde permisiuni direct utilizatorilor. În al doilea rând, aveți nevoie de o parolă pentru a activa rolul aplicației.

Când aplicația activează rolul aplicației pentru sesiune, această sesiune pierde toate permisiunile care se aplică numelor de intrare, conturilor de utilizator, grupurilor de utilizatori sau rolurilor din toate bazele de date. Deoarece aceste roluri se aplică numai în baza de date în care au reședința, sesiunea poate accesa o altă bază de date numai prin permisiunile acordate utilizatorului invitat al bazei de date pe care doriți să o accesați. Prin urmare, dacă baza de date nu are un utilizator de oaspeți, sesiunea nu poate accesa această bază de date.

Următoarele două subsecțiuni descriu gestionarea rolurilor aplicației.

Gestionarea rolurilor aplicațiilor prin Management Studio

Pentru a crea un rol de aplicație utilizând Management Studio, extindeți nodul serverului, dosarul "Baze de date", baza de date necesară, dosarul "Securitate". Faceți clic dreapta pe dosarul Roluri, selectați Nou din meniul contextual și selectați New Role Application din submeniu. În aplicația de dialog Rol - tip în numele câmpului corespunzător de noua parolă rol de aplicații și, în mod opțional, schema implicită. Faceți clic pe OK pentru a salva rolul.

Gestionarea rolurilor aplicațiilor prin intermediul instrucțiunilor Transact-SQL

Pentru a crea, modifica și șterge rolurile aplicației, utilizați instrucțiunile ROLA CREATE APLICAREA CREATE, ROLUL ALTER APPLICATION și ROLUL APLICAȚIEI DROP, respectiv.

Instrucțiunea CREATE APPLICATION ROLE. care creează rolul de aplicație pentru baza de date curentă, are doi parametri. Primul parametru specifică parola pentru rol, iar în al doilea parametru - schema implicită, adică Prima schemă pe care serverul o va contacta pentru rezolvarea numelor de obiecte pentru acest rol.

Următorul exemplu arată cum se creează rolul aplicației WeeklyReports în baza de date SampleDb:

Instrucțiunea ALTER APPLICATION ROLE este utilizată pentru a schimba numele implicit, parola sau schema unui rol existent al aplicației. Sintaxa acestei instrucțiuni este foarte asemănătoare cu sintaxa instrucțiunii CREATE APPLICATION ROLE. Pentru a rula instruciunea ALTER APPLICATION ROLE pentru acest rol, trebuie să aveți permisiunea ALTER.

Pentru a șterge un rol de aplicație, utilizați instrucțiunea DROP APPLICATION ROLE. Rolul aplicației nu poate fi ștearsă dacă deține obiecte protejate (obiecte protejate).

Activarea rolurilor aplicației

Când stabiliți o conexiune, trebuie să executați rutina sistemului sp_setupprole. Pentru a activa permisiunile asociate rolului aplicației. Această procedură are următoarea sintaxă:

Parametrul rol specifică numele rolului de aplicare definit în baza de date curentă, în parola de parametri - parola pentru acest rol, iar în parametrul encrypt_style - metoda de criptare specificată pentru parolă.

Când activați rolul aplicației folosind procedura de sistem sp_setupprole, țineți cont de următoarele:

Rolul aplicației activat nu poate fi dezactivat în baza de date curentă până când sesiunea nu este deconectată de la sistem;

Rolul aplicației este întotdeauna legată de baza de date, adică domeniul său de aplicare este limitat de baza de date actuală. Dacă schimbați baza de date curentă în timpul unei sesiuni, va fi capabil să efectueze acțiuni care depind de permisiunile din această bază de date.

Role de server definite de utilizator

Role de baze de date definite de utilizator

În mod obișnuit, rolurile bazei de date definite de utilizator sunt aplicate atunci când un grup de utilizatori de baze de date trebuie să efectueze un set comun de acțiuni în baza de date și nu există un grup de utilizatori Windows. Pentru a crea, modifica și șterge aceste roluri, se utilizează fie mediul Management Studio sau instrucțiunile de limbă Transact-SQL CREATE ROLE, ALTER ROLE și DROP ROLE. Gestionarea rolurilor bazei de date definite de utilizator este acoperită în următoarele două subsecțiuni.

Gestionarea rolurilor bazei de date definite de utilizator folosind Management Studio

Pentru a crea un rol de bază de date definit de utilizator, utilizând mediul Management Studio, extindeți nodul serverului, dosarul Baze de date, baza de date dorită, dosarul Securitate. Faceți clic dreapta pe dosarul Roluri, selectați Nou din meniul contextual și selectați New Database Role din submeniu. În fereastra Rolul bazei de date - dialog nou care se deschide, introduceți numele noului rol în câmpul corespunzător:

Transact-sql, roluri

Faceți clic pe butonul Adăugați pentru a adăuga membri la noul rol. Selectați membrii solicitați (utilizatori și / sau alte roluri) pentru rolul bazei de date noi, apoi faceți clic pe OK.

Gestionarea rolurilor bazei de date definite de utilizator folosind instrucțiunile Transact-SQL

Pentru a crea un nou rol de bază de date definit de utilizator în baza de date curentă, utilizați instrucțiunea CREATE ROLE. Sintaxa acestei instrucțiuni arată astfel:

Parametrul nume_punct al instrucțiunii specifică numele rolului definit de utilizator fiind creat, iar în parametrul owner_name, utilizatorul bazei de date sau rolul care va deține noul rol. (Dacă utilizatorul nu este specificat, proprietarul rolului va fi utilizatorul care execută instrucțiunea CREATE ROLE.)

Instrucțiunea ALTER ROLE este utilizată pentru a schimba numele rolului de bază de date definit de utilizator. și pentru a elimina rolul din baza de date, instrucțiunea DROP ROLE. Rolul care deține obiectele protejate (adică obiectele bazei de date) nu poate fi șters. Pentru a elimina un astfel de rol, trebuie mai întâi să schimbați proprietarul acestor obiecte.

Următorul exemplu arată modul de creare a unui rol de bază de date definit de utilizator și adăugarea de membri la acesta:

În acest exemplu, rolul bazat pe utilizator al bazei de date de marketing este inițial creat, iar apoi, prin clauza ADD MEMBER a declarației ALTER ROLE, se adaugă doi membri - Vasya și ProfessorWeb \ Alexandr.

Articole similare