Internet Windows Android

SQL Server: Roluri de utilizator. Adăugarea utilizatorilor bazei de date SQL Server Security și Trusted Authentication

Crearea utilizatorilor bazei de date SQL Server 2005, CREATE USER, proprietăți utilizator

Puteți crea un utilizator al bazei de date:

q pe ecranul grafic din container Numele bazei de date | Securitate |Utilizatoriîn Management Studio;

q folosind comanda CREAZA UTILIZATOR(procedură stocată sp_ Adăugați utilizator, care a fost folosit în acest scop în versiunile anterioare ale SQL Server, este păstrat numai pentru compatibilitate cu versiunea anterioară). De exemplu, comanda pentru a crea un utilizator Utilizator1, care va corespunde login-ului SQL Server Autentificare1 cu schema implicita dbo, ar putea arăta astfel:

CREAȚI UTILIZATOR User1 PENTRU CONECTARE Login1 WITH DEFAULT_SCHEMA = dbo;

Când creați un utilizator, va trebui să specificați:

q Nume de utilizator(Nume utilizator), căruia i se aplică aceleași reguli ca și pentru alte obiecte SQL Server;

q log in(SQL Server sau Windows) care vor fi atribuite utilizatorului acestei baze de date. Odată creat un utilizator, datele de conectare care i-au fost atribuite nu pot fi modificate. Puteți crea un utilizator căruia nu i se va atribui nicio autentificare (folosind comutatorul Fărălog in). Un astfel de utilizator nu va mai putea atribui o autentificare. Utilizatorii de acest tip - fără autentificare - sunt utilizați numai pentru configurarea suplimentară de securitate în Service Broker. De asemenea, rețineți că, dacă un utilizator a fost deja atribuit unui utilizator, acesta nu poate fi atribuit unui alt utilizator în același timp;

q certificat(numele certificatului) sau cheie asimetrică(numele cheii);

q schema implicită(Schema implicită);

q pentru care scheme acest utilizator va fi proprietar(Scheme deținute);

q ce rolurile bazei de date(Rolurile bazei de date) îi vor fi atribuite.

Există doar doi parametri necesari - numele de utilizator și autentificare.

Pe fila Securizabile Utilizatorului i se pot acorda imediat permisiuni pentru obiectele bazei de date. Permisiunile vor fi discutate în secțiunile următoare. Tab ExtinsProprietăți vă permite să definiți proprietăți personalizate suplimentare pentru acest obiect. Ele sunt utilizate în aceleași scopuri ca și proprietățile avansate ale bazei de date. (vezi pct. 4.8).

Modificarea proprietăților utilizatorului și ștergerea acestora se face din același container în Management Studio ca și crearea utilizatorului, precum și utilizarea comenzilor ALTER UTILIZATOR/DROP UTILIZATOR. Nu puteți șterge un utilizator care deține obiecte din baza de date.

5 răspunsuri

Pe baza întrebării dvs., cred că ați putea fi puțin confuz în ceea ce privește diferența dintre utilizator și autentificare. O autentificare este un cont pe SQL Server în general - cineva care se poate conecta la server și care are o parolă. Un utilizator este o intrare cu acces la o anumită bază de date.

Crearea unei autentificări este ușoară și ar trebui (evident) să fie făcută înainte de a crea un cont de utilizator pentru a vă conecta la o anumită bază de date:

CREATE LOGIN NewAdminName CU PAROLA = „ABCD” GO

Iată cum creați un utilizator cu privilegii db_owner folosind Login-ul pe care tocmai l-ați declarat:

Utilizați baza de date; GO DACA NU EXISTĂ (SELECT * FROM sys.database_principals WHERE nume = N"NewAdminName") ÎNCEPEȚI CREATE UTILIZATOR PENTRU LOGIN EXEC sp_adrolemember N"db_owner", N"NewAdminName" END; MERGE

Acum conectările sunt puțin mai fluide decât par a fi mai sus. De exemplu, un cont de utilizator este creat automat (în majoritatea instalărilor SQL Server) pentru contul de administrator Windows atunci când baza de date este instalată. În cele mai multe situații, îl folosesc doar când administrez baza de date (are toate privilegiile).

Cu toate acestea, dacă intenționați să accesați SQL Server dintr-o aplicație, trebuie să configurați serverul pentru „Mod mixt” (atât Windows, cât și SQL) și să creați o autentificare așa cum se arată mai sus. Veți primi apoi privilegii „GRANT” pentru acea intrare SQL în funcție de ceea ce este necesar pentru aplicația dvs. Consultați pentru mai multe informații.

UPDATE: Aaron subliniază utilizarea sp_addsrvrolemember pentru a atribui un rol prevăzut contului tău. Aceasta este o idee bună - mai rapid și mai ușor decât acordarea manuală a privilegiilor. Dacă îl găsiți, veți vedea multe link-uri. Cu toate acestea, ar trebui să înțelegeți în continuare diferența dintre autentificare și utilizator.

Drepturi complete de administrator pentru întregul server sau o anumită bază de date? Cred că ceilalți au răspuns pentru baza de date, dar pentru server:

UTILIZARE ; GO CREAȚI LOGIN MyNewAdminUser CU PAROLA = N"abcd", CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF; GO EXEC sp_addsrvrolemember @loginame = N"MyNewAdminUser", @rolename = N"sysadmin";

Poate fi necesar să omiteți parametrii CHECK_ în funcție de versiunea de SQL Server Express pe care o utilizați (este aproape întotdeauna o idee bună să includeți aceste informații în întrebarea dvs.).

Dacă doriți să creați un script generic, o puteți face cu o instrucțiune Execute, înlocuind cu numele dvs. de utilizator și numele bazei de date

Declara @userName ca varchar(50); Declara @defaultDataBaseName ca varchar(50); Declara @LoginCreationScript ca varchar(max); Declara @UserCreationScript ca varchar(max); Declara @TempUserCreationScript ca varchar(max); set @defaultDataBaseName = "data1"; set @userName = "domeniu\nume utilizator"; set @LoginCreationScript ="CREATE LOGIN [(userName)] FROM WINDOWS WITH DEFAULT_DATABASE =(dataBaseName)" set @UserCreationScript =" USE (dataBaseName) CREATE User [(userName)] for LOGIN [(userName)]; EXEC "spder_ad"blemember "", ""(userName)""; EXEC sp_adrolemember ""db_datawriter"", ""(userName)"" Acordați executarea pe Schema:: dbo TO [(userName)];" /*Crearea autentificarii*/ set @LoginCreationScript=Înlocuiește(Înlocuiește(@LoginCreationScript, „(nume utilizator)”, @Nume utilizator), „(nume baze de date)”, @DefaultDataBaseName) set @UserCreationScript =Înlocuiește(@UserCreationScript, „(nume utilizator)” , @userName) Execute(@LoginCreationScript) /*Crearea utilizatorului și atribuirea rolurilor*/ set @TempUserCreationScript =Înlocuiește(@UserCreationScript, "(dataBaseName)", @defaultDataBaseName) Execute(@TempUserCreationScript) set @TempUserCreationScript(@UserCreplaceationScript(@UserCreplacetionCreation), „(dataBaseName)”, „db2”) Execute(@TempUserCreationScript) set @TempUserCreationScript =Înlocuiește(@UserCreationScript, „(dataBaseName)”, „db3”) Execute(@TempUserCreationScript)

Poți să folosești:

CREAȚI LOGIN CU PAROLA = " "; MERCI

De asemenea, puteți utiliza:

Acordați permisiunea [ ,...n ] ON SCHEMA:: schema_name

Pentru a configura permisiunile pentru schema pe care ați atribuit-o utilizatorilor.

Săptămâna trecută am instalat Microsoft SQL Server 2014 Developer Edition pe pagina mea de dezvoltare și am întâlnit imediat o problemă pe care nu am mai văzut-o până acum.

Am instalat diferite versiuni de SQL Server de nenumărate ori și de obicei este un proces nedureros. Instalează serverul, lansează consola de management, este atât de simplu. Cu toate acestea, după finalizarea acestei instalări, când am încercat să mă autent la server folosind SSMS, am primit o eroare similară cu cea de mai jos:

Eroare de conectare SQL Server 18456 „Conectarea eșuată pentru utilizator... (Microsoft SQL Server, eroare: 18456)” Am folosit această eroare dacă am introdus parola greșită la conectare - dar asta numai dacă folosesc modul mixt ( Autentificare Windows și SQL). În acest caz, serverul a fost configurat numai cu autentificare Windows și contul de utilizator era al meu. Încă nu sunt sigur de ce nu mi-a adăugat utilizatorul la rolul SYSADMIN în timpul instalării; poate am ratat un pas și am uitat să-l adaug. În orice caz, nu s-a pierdut toată speranța.

Modul de a remedia acest lucru dacă nu vă puteți autentifica cu niciun alt cont pe SQL Server este să adăugați Conectarea la rețea prin CLI. Pentru a face acest lucru, trebuie să fiți administrator Windows pentru computerul la care sunteți conectat.

Opriți serviciul MSSQL. Deschideți un prompt de comandă folosind comanda Executare ca administrator. Accesați folderul în care este stocat fișierul SQL Server EXE; Valoarea implicită pentru SQL Server 2014 este „C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn”. Rulați următoarea comandă: „sqlservr.exe -m”. Aceasta va porni SQL Server în modul utilizator unic. După ce părăsiți acel prompt de comandă, deschideți altul, repetați pașii 2 și 3. În a doua fereastră de linie de comandă, rulați „SQLCMD -S Server_Name\Instance_Name” În acea fereastră, rulați următoarele rânduri, apăsând Enter după fiecare: 1

CREATE LOGIN [domainname\username] DIN WINDOWS 2 GO 3 SP_ADDSRVROLEMEMBER „LOGIN_NAME”, „SYSADMIN” 4 GO Utilizați CTRL + C pentru a încheia ambele procese în ferestrele promptului de comandă; vi se va solicita să apăsați Y pentru a încheia procesul SQL Server.

Reporniți serviciul MSSQL. Asta este! Acum vă puteți conecta folosind datele de conectare online.

12.07.2016 Tim Ford

Ce ar trebui să știe un administrator de baze de date despre securitate: o explicație a termenilor și o prezentare generală a obiectelor în practică

Securitate SQL Server și autentificare de încredere

Există două tipuri de scheme de securitate în Microsoft SQL Server: securitate SQL Server și autentificare de încredere (cunoscută și ca autentificare Windows). Securitatea SQL Server este o combinație standard de nume de utilizator și parolă de conectare, iar autentificarea de încredere presupune că dispozitivul care încearcă să se conecteze la instanța SQL Server este aprobat prin procedura de autentificare a domeniului, iar rezultatele acestei verificări sunt transmise instanței de SQL Server: se presupune că domeniul este cel care găzduiește instanța SQL Server are încredere în contul de utilizator - verificare efectuată anterior.

Utilizatorii și aplicațiile care încearcă să se conecteze la SQL Server prin mecanismul de securitate SQL Server trebuie să furnizeze un nume de utilizator și o parolă create pe serverul SQL țintă. Când vă conectați folosind autentificarea de încredere, trebuie doar să setați un semnalizator în șirul de conexiune pentru a indica faptul că este utilizată autentificarea de încredere. În acest caz, datele de conectare ale utilizatorului final sau ale contului de serviciu al aplicației sunt trimise ca simbol de securitate. Dacă există un nume de utilizator care se potrivește pe SQL Server, atunci accesul va fi acordat.

Nume și utilizatori

Există două niveluri de acces la o instanță SQL Server: conturi de utilizator de server (sau instanță) și utilizatori de baze de date. Folosind conturi, serverele permit unui utilizator extern (în acest articol, termenul „utilizator” se referă la orice aplicație, serviciu, API etc. care încearcă să se conecteze la SQL Server) să facă conexiunea inițială la o instanță a SQL Server. Cu securitatea bazată pe SQL, aceasta necesită un nume de utilizator și o parolă. În cazul autentificării de încredere, acesta este un cont de domeniu.

Există două moduri de a crea aceste conturi de utilizator: folosind Transact-SQL (https://msdn.microsoft.com/en-us/library/ms189751.aspx? f=255&MSPPError=-2147217396) sau prin GUI. Procedura de utilizare a T-SQL pentru a crea conturi este bine documentată și cel mai bine este să consultați documentația oficială Microsoft SQL Server. Deocamdată, să vedem cum să creați un cont în interfața grafică. Pentru a lansa caseta de dialog pentru a crea conturi de utilizator, conectați-vă la instanța SQL Server în SQL Server Management Studio (SSMS) în Object Explorer, apoi extindeți nodul Security\Logins. Faceți clic dreapta pe Login și selectați New Login din meniul contextual (Figura 1).

Veți vedea dialogul pentru setările contului prezentat în Figura 2. Vă puteți schimba numele de utilizator în aceeași fereastră.

Aceasta este fila General pentru crearea (și modificarea) setărilor contului. Diferă de cele două scheme de securitate descrise anterior. În fila General puteți seta:

  • Nume de autentificare. Folosit pentru autentificare. În cazul Windows, sau autentificarea de încredere, trebuie să specificați numele în formatul DOMAIN\LOGIN, unde LOGIN este numele utilizatorului din domeniul de pe care utilizatorul se autentifică. Dacă instanța SQL Server este situată într-un domeniu diferit, atunci este necesară o relație de încredere între acel domeniu și domeniul SQL Server.
  • Parola. Cu autentificarea SQL Server, caseta de text cu parolă este activată și introduceți atât numele de utilizator, cât și parola asociată.
  • Politica parolelor și expirarea. Casetele de selectare pentru parolă și politica de expirare sunt, de asemenea, bifate în modul de autentificare SQL Server, iar politicile care sunt în vigoare în Active Directory în domeniul pe care găzduiește SQL Server sunt aplicate. Prin atribuirea unui nume de utilizator SQL Server, puteți permite utilizatorilor să-și schimbe parolele după înregistrare. Drept urmare, administratorului bazei de date i se interzice accesul la numele de cont al utilizatorului final.
  • Certificate, chei, acreditări. În acest articol pentru începători, nu vom acoperi certificatele, cheile și acreditările.
  • Baza de date implicită Odată stabilită conexiunea la SQL Server, se efectuează doi pași: autentificare (trebuie să existe un nume de utilizator pentru acreditările de domeniu ale utilizatorului dacă se folosește autentificarea Windows sau Trusted, sau combinația nume de utilizator/parolă trebuie să fie transmisă instanței SQL Server). Aceasta este prima barieră. Al doilea este că numele de utilizator verificat are un obiect utilizator asociat în baza de date implicită - baza de date configurată inițial ca context de nume de utilizator după verificarea identității. Chiar dacă primul obstacol este trecut, dacă nu există un utilizator de bază de date corespunzător în baza de date implicită, conexiunea nu va fi stabilită și intrarea corespunzătoare va fi scrisă în jurnalul de erori SQL. Dar există și excepții: dacă rolul de server al unui utilizator este atât de important încât este necesar să se stabilească drepturi implicite pentru acesta în mod implicit în fiecare bază de date, atunci nu este necesar să existe un utilizator corespunzător în baza de date implicită. Cu toate acestea, sunt înaintea mea pentru că nu am acoperit încă utilizatorii bazei de date sau rolurile de server. Este suficient să rețineți că atunci când selectați o bază de date implicită în GUI, nu este creat niciun utilizator al bazei de date asociat. Pur și simplu specificați care ar trebui să fie baza de date implicită. Când faceți acest lucru, utilizați fila Mapare utilizator din caseta de dialog Creare autentificare pentru a crea un utilizator al bazei de date asociat.

Să trecem la următoarea filă, Roluri de server, prezentată în Figura 3. Pe această pagină, puteți selecta orice rol de nivel SQL Server (instanță) pentru noul utilizator. Rolurile de server sunt colecții de drepturi, cunoscute și sub denumirea de securizabile, care sunt împachetate într-o colecție, astfel încât să nu fie nevoie să atribuiți drepturi fiecărui element securabil în mod individual. În mod implicit, fiecare cont este membru al unui rol public, ceea ce vă permite să stabiliți o conexiune primară la o instanță a SQL Server. Restul articolului va analiza fiecare rol de server inclus în Microsoft SQL Server.

Următoarea pagină a casetei de dialog Creare autentificare din SQL Server Management Studio este pentru maparea contului de utilizator. Fiecare cont poate avea un utilizator într-una sau mai multe baze de date. Pe această pagină puteți crea utilizatori ai bazei de date asociați noului cont. Pentru a face acest lucru, trebuie să furnizați următoarele informații.

  • Bază de date. Bifați caseta de selectare de lângă baza de date în care doriți să creați un utilizator asociat pentru cont.
  • Nume de utilizator Numele obiectului utilizator nu se potrivește neapărat cu numele contului și vă vom arăta cum poate fi schimbat mai târziu.
  • Schema implicită Fiecare utilizator al bazei de date trebuie să fie atribuit unei scheme implicite. O schemă este o colecție de obiecte de bază de date care sunt separate logic (dar nu neapărat fizic) de alte obiecte din baza de date. Puteți acorda unui utilizator sau unui grup de utilizatori drepturi pentru toate obiectele dintr-o schemă dată, de exemplu, să acordați tuturor utilizatorilor din Contabilitate (sau unui cont de serviciu al unei aplicații de contabilitate) anumite drepturi asupra tuturor obiectelor din schema de facturare, dar nu să acordați acces la acestea. obiecte către alți utilizatori. Când atribuiți o schemă implicită unui utilizator de bază de date, nu este nevoie să includeți numele schemei în apelurile T-SQL către baza de date atunci când adresați obiecte din schema respectivă. Aceasta înseamnă, de asemenea, că, dacă unui utilizator i se acordă drepturi de a crea obiecte, acestea vor fi create implicit în această schemă, cu excepția cazului în care specificați un nume de schemă la crearea obiectelor. Mai târziu în articol vom atinge conceptul de circuite.
  • Rolul de membru al bazei de date La fel ca la nivel de instanță sau server, fiecare bază de date are o colecție predefinită de drepturi împachetate în roluri. Ne vom uita la rolurile bazei de date care vin cu Microsoft SQL Server puțin mai târziu.

Să aruncăm o privire la caseta de dialog exemplu pentru contul de utilizator SQLCRUISE\skipper (vezi Figura 4).

În acest exemplu, utilizatorului SQLCRUISE\skipper i se acordă drepturi la baza de date implicită (barca de salvare), unde numele de utilizator asociat este pur și simplu skipper. Schema implicită este skipper_only. Celelalte două baze de date în care vor fi creați utilizatorii pentru acest cont folosesc același nume de utilizator ca și în numele de utilizator (de obicei pentru ușurința identificării), iar schema implicită este dbo, care este implicită în Microsoft SQL Server pentru toate cele definite de utilizator. obiecte. Mai multe informații despre acest lucru vor fi furnizate în secțiunea următoare. În cazul bazei de date a bărcilor de salvare, oferim doar calitatea de membru în rolul bazei de date publice, care vă permite să vă conectați la baza de date fără permisiuni suplimentare.

Următoarea pagină, Securables, prezintă securable la nivel de server sau instanță. După cum sa menționat mai sus, elementele securizate sunt permisiuni acordate obiectelor. Obiectele securizate sunt furnizate de obicei în următoarele cazuri:

  • rolul fix este prea larg (multe alte drepturi pentru cont);
  • Rolul sau setul de roluri atribuit nu acoperă în totalitate toate drepturile necesare pentru cont.

În exemplul nostru, am acordat SQLCRUISE\skipper apartenența la rolul de server public și i-am permis să vadă orice definiții de obiect care există la nivel de server (vezi Figura 5).

În cele din urmă, mergem la pagina Stare. Pe această pagină puteți permite sau refuza accesul utilizatorului (în mod implicit, este selectat Grant). Prin urmare, puteți să creați un cont, să acordați drepturi, să creați utilizatori asociați și apoi să revocați accesul. Puteți reveni la această fereastră pentru un utilizator existent și puteți revoca accesul la instanța SQL Server. Activarea și dezactivarea unui cont are loc în același mod (consultați Ecranul 6). În cele din urmă, putem vedea starea contului utilizatorului și vedem dacă contul a fost blocat din cauza prea multor încercări eșuate de conectare cu o parolă incorectă.

Fiecare opțiune funcționează cu succes dacă există un singur tabel numit tblFoo în baza de date SQL_Cruise și contextul curent al bazei de date a fost baza de date SQL_Cruise. Cu toate acestea, doar prima opțiune va funcționa corect, indiferent de baza de date la care sunteți conectat în prezent pe instanța SQL Server care conține baza de date SQL_Cruise. A doua opțiune va fi executată dacă sunteți conectat la baza de date SQL_Cruise, indiferent de numărul de scheme care au tblFoo, deoarece ați specificat schema dbo. A treia opțiune va genera un mesaj de eroare (vezi Figura 8) dacă baza de date SQL_Cruise are mai multe scheme cu tblFoo, așa cum se arată în Lista 4, unde am creat atât tabelul dbo.tblFoo, cât și tabelul user.tblFoo.

Da, așa este - obiectul există, dar primești mesajul de eroare Nume obiect nevalid. Nu fiți niciodată sigur în avans că un obiect cu acest nume nu există. Mesajul poate indica o problemă de sintaxă.

Rolurile fixe sunt incluse cu Microsoft SQL Server atât la nivel de server, cât și la nivel de bază de date. Cu toate acestea, vă puteți crea propriile roluri dacă apar situații în care trebuie să atribuiți aceleași permisiuni multor utilizatori. Crearea de roluri personalizate vă permite să definiți aceste drepturi o singură dată: atunci când creați rolul, nu pe baza unui cont de autentificare per utilizator sau per utilizator (în funcție de baza de date sau de rolurile de server). Pe lângă economisirea de timp, elimină inconsecvența la atribuirea drepturilor mai multor utilizatori sau conturi.

Utilizați hyperlinkurile pentru a naviga prin lista completă a rolurilor de server și a rolurilor de baze de date furnizate de Microsoft. Articolele viitoare, pe măsură ce începem să trecem de la subiecte de bază la subiecte mai profunde, vor acoperi cum să creați roluri, să adăugați utilizatori sau conturi la aceste roluri și să asociați drepturi cu roluri la nivel de server și bază de date.

Securitatea Microsoft SQL Server este un subiect foarte important. Se distinge prin profunzimea sa, precum și prin originalitatea terminologiei sale. Sper că mi-am atins obiectivul de a explica diferiții termeni și de a oferi o privire de ansamblu asupra obiectelor folosite în practică. Vom acoperi alte câteva subiecte în aceste articole de nivel de intrare, dar în curând voi aborda probleme mai complexe care apar din această postare. Ca întotdeauna, mulțumesc cititorilor pentru atenție și aștept cu nerăbdare comentariile voastre. Sper că acest articol îi va ajuta pe administratorii de baze de date începători să stăpânească misterele SQL.

Listare 1. Cod corespunzător setărilor efectuate în GUI

UTILIZAȚI GO CREATE LOGIN FROM WINDOWS WITH DEFAULT_DATABASE= GO USE GO CREATE UTILIZATOR PENTRU LOGIN ALTER UTILIZATOR WITH DEFAULT_SCHEMA= GO CREATE SCHEMA AUTORIZARE GO USE GO CREATE UTILIZATOR PENTRU LOGIN ALTER UTILIZATOR WITH DEFULTER USE SCHEMA GO_CREATE ALTER CU USER_SCHEMA GO_CREATE EMA= GO folosește GO GRANT VIEW ORICE DEFINITION TO GO

Lista 2. Informații despre utilizatorii sistemului și bazei de date

SELECT name , sid , principal_id , type_desc , default_database_name FROM sys.server_principals WHERE nume = "profesor"; SELECT name , sid , principal_id , type_desc , default_schema_name FROM lifeboat.sys.database_principals WHERE nume = "profesor";

Lista 3. Exemplu de interogare pentru selectarea coloanelor și rândurilor din tabel

OPȚIUNEA 1: FQDN -============================================== ============ ============================= SELECTEAZĂ * DIN SQL_Cruise.dbo.tblFoo; -=================================================== === ======================== - OPTIUNEA 2: nume definit prin schema -============== == ================================================== ===== ======= SELECT * FROM dbo.tblFoo; -=================================================== === ======================== - OPTIUNEA 3: numai numele obiectului -=============== === ================================================= ====== ===== SELECT * FROM tblFoo; Lista 4. Crearea tabelelor cu mai multe scheme USE GO CREATE SCHEMA AUTORIZATION GO CREATE TABLE dbo.tblFoo (id INT); CREATE TABLE .tblFoo (id INT); SELECT * FROM tblFoo;


Noțiuni de bază privind securitatea SQL Server


Adăugarea utilizatorilor bazei de date

Surse baze de date

Utilizatorul se poate conecta la sistemul de baze de date utilizând un cont de utilizator Windows sau o autentificare SQL Server. Pentru a accesa și a lucra ulterior cu o anumită bază de date, utilizatorul trebuie să aibă și un cont de utilizator al bazei de date. Pentru a lucra cu fiecare bază de date individuală, trebuie să aveți un cont de utilizator special pentru acea bază de date. Un cont de utilizator al bazei de date poate fi mapat la un cont de utilizator Windows existent, un grup Windows (în care utilizatorul are calitatea de membru), autentificare sau rol.

Puteți gestiona utilizatorii bazei de date folosind Management Studio sau instrucțiuni Transact-SQL. Ambele metode sunt discutate în următoarele subsecțiuni.

Gestionarea utilizatorilor bazei de date utilizând Management Studio

Pentru a adăuga un utilizator de bază de date utilizând Management Studio, extindeți nodul de server în fereastra Object Explorer și folderul „Băzuri de date” din acesta, iar în acest folder extindeți nodul de bază de date dorit și folderul „Securitate” din acesta. Faceți clic dreapta pe folderul Utilizatori și selectați Utilizator nou din meniul contextual. Se va deschide caseta de dialog Database User - New, în care trebuie să introduceți numele de utilizator și să selectați numele de autentificare corespunzător:

Aici puteți selecta și schema implicită pentru acest utilizator.

Gestionarea securității bazei de date utilizând instrucțiuni Transact-SQL

Pentru a adăuga un utilizator la baza de date curentă, utilizați Instrucțiunea CREATE USER. Sintaxa acestei instrucțiuni arată astfel:

CREATE USER user_name Convenții de sintaxă

Parametrul user_name specifică numele prin care utilizatorul este identificat în baza de date, iar parametrul login specifică numele de conectare pentru care este creat utilizatorul. Parametrii cert_name și key_name specifică certificatul corespunzător și, respectiv, cheia asimetrică. În sfârșit, în parametru CU DEFAULT_SCHEMA specifică prima schemă cu care serverul bazei de date va începe să caute pentru a rezolva numele obiectelor pentru un anumit utilizator al bazei de date.

Utilizarea instrucțiunii CREATE USER este prezentată în exemplul de mai jos:

UTILIZAȚI SampleDb; CREAȚI UTILIZATOR Vasya PENTRU LOGIN Vasya; CREAȚI UTILIZATOR Alex PENTRU CONECTARE CU DEFAULT_SCHEMA = poco;

Pentru a rula cu succes a doua instrucțiune din exemplu pe computer, trebuie mai întâi să creați un cont Windows pentru utilizatorul Alexandr și să specificați numele serverului dvs. în loc de domeniul ProfessorWeb (server).

În acest exemplu, prima instrucțiune CREATE USER creează un utilizator al bazei de date Vasya pentru utilizatorul Vasya al contului Windows. Schema implicită pentru utilizatorul Vasya va fi dbo deoarece parametrul DEFAULT_SCHEMA nu are nicio valoare specificată. A doua instrucțiune CREATE USER creează un nou utilizator al bazei de date Alex. Schema implicită pentru acest utilizator va fi poco. (Parametrul DEFAULT_SCHEMA poate fi setat la o schemă care nu există în prezent în baza de date.)

Fiecare bază de date are propriii utilizatori specifici. Prin urmare, instrucțiunea CREATE USER trebuie emisă pentru fiecare bază de date pentru care trebuie să existe un cont de utilizator. În plus, pentru o anumită bază de date, o autentificare SQL Server poate avea un singur utilizator de bază de date.

Utilizarea instrucțiunilor ALTER UTILIZATOR puteți schimba numele de utilizator al bazei de date, puteți schimba schema implicită de utilizator sau puteți înlocui utilizatorul cu un alt nume de conectare. Similar cu instrucțiunea CREATE USER, unui utilizator i se poate atribui o schemă implicită înainte de a fi creată.

Pentru a elimina un utilizator din baza de date curentă, utilizați instrucțiunea DROP UTILIZATOR. Un utilizator care este proprietarul obiectelor protejate (obiecte bază de date) nu poate fi șters.

Scheme de baze de date implicite

Fiecare bază de date din sistem are următoarele scheme implicite.

Când implementați baze de date de informații de întreprindere bazate pe soluții 1C în modul client-server folosind SGBD MS SQL, uneori este necesar ca diferite baze de date să fie create în numele diferiților utilizatori. Acestea. Uneori trebuie să creăm un alt utilizator decât sa în SQL Management Studio și să introducem datele acestuia în câmpurile ferestrei pentru a adăuga o nouă securitate a informațiilor. (Fig.1.)

Care sunt drepturile minime în baza cărora toate acestea vor funcționa?

Materialele de suport metodologic ITS precizează că „acest utilizator trebuie să aibă nu numai drepturi depline asupra bazei de date infobase, ci și drepturi de a crea baze de date în serverul SQL și de a citi tabelele bazei de date Master”. Pentru a vedea cum funcționează acest lucru în practică, vom efectua o instalare de testare a securității informațiilor într-o versiune client-server folosind MS SQL Server 2008 R2 Express. Puteți, desigur, să copiați prost parametrii utilizatorului sa, dar haideți să o facem cu sens, este întotdeauna util.

Să lansăm mediul SQL Management Studio 2008 R2, să stabilim o conexiune la serverul SQL și să deschidem secțiunea Securitate->Logins și să selectăm comanda din meniul contextual „Creare login”, să setăm numele de utilizator și să setăm drepturile dbcreator, public(Fig.2)

Pe pagina cu proprietățile utilizatorului „Mapping utilizator”, bifați caseta de selectare „Schema” pentru toate bazele din tabelul de utilizatori mapați master, model, msdb, tempdb, iar pentru fiecare bază de date din tabel notăm apartenența la rol public, db_owner(Fig.3)

Acum puteți reveni la fereastra prezentată în Fig. 1 și aplicați parametrii introduși. Clic Mai departe-> Gata si... baza de date a fost creata, lista bazelor de date a crescut cu o pozitie.

Astfel, vom putea mulțumi și liniști administratorul de sistem, deoarece combinația specificată de drepturi de utilizator MS SQL este minim suficientă pentru utilizarea cu platforma 1C în modul client-server, iar parola „sa” va rămâne necompromisă, iar noi au drepturile de utilizator MS SQL de care avem nevoie.