Cuntrolli di accessu per l'Usuariu è Role in SQL

A sicurità hè primurosa à l' amministratori di basa di dati chì cercanu à prutezzione di i so gigabyte di i dati vitali di u cummerciale da l'indichi di i stranieri è di l'insiders non autorizati chì pruvanu di esaminà a so autorità. Tutti i sistemi di gestione di base di datu di retazioni proporcionanu un certu mischinu di sicurità intrutiscenu per minimizzà questi minaccii. Hanu sferenu da a tutela di password cunfrutu da Microsoft Access à l'uttenimentu cumule di usu / rolu supportatu da e base di ricerca avanzati cum'è Oracle è Microsoft SQL Server. Questu articulu hè fughjenu nantu à i mecanismi di sicurità cumuni per tutte e base di u bascu chì impone a Lingua Query Strutture (o SQL ). Inseme, camminamu in u prucessu di rinfurzà i cuntrolli di accessu di dati è assicurendu a sicurezza di i vostri dati.

Utenti

Basi chì sò basati in servitori sò tutte un cuncettu d'usu cunsequente cum'è ciò chì si usanu in i sistemi operativi. Se ùn avete familiaratu cù a ghjuridica di upertuariu / di gruppu truvatu in Microsoft Windows NT è Windows 2000, truvate chì i gruppi di usteri / rolu supportatu da SQL Server è Oracle sò assai simili.

Hè assai ricunnisciute chì cose una basa di basa di dati individuale per ogni persona chì vi accede à a vostra basa di dati. Hè tècnicamente pussibule di sparte comparte entre l'utilizatori o simule utilizate un compte d'utilizatore per ogni tipu d'utilizatori chì deve bisogna à accede à a vostra basa di dati, ma i disuurisce assai a sti praxi per dui motivi. Prima, abbandunà accountability individuali-se un utilizatore faciule un mudificà per a vostra basa di dati (digià d'avè dundu un risultu di $ 5,000), ùn puderà micca pudè rinticcà à una persona specifica per l'utilizazione di logs di verificazione. Inoltre, se un uttellu specificu abbandono a l'urganizazione è avete vulete sguassà u so accessu da a basa di dati, vi sarete obligatu di cambià a password chì tutti l'utilizatori sò stanu.

I metudi per creà contatti uttenuti si varienu da a plataforma à u prugramma è avete bisognu di cunsultà a vostra documentazione specifica di u DBMS per u prucedimentu esatta. L'utilizatori di Microsoft SQL Server solu esse invistigatu l'utilizazione di u sp_adduser prucedure in u prucedimentu. L'amministratori di a basa di l'Oracle trovi u cumerciu cumertero USER. Puderete ancu voi per investigà i schemi d'autenticità alternative. Per esempiu, Microsoft SQL Server aghjusta l'usu di Windows NT Integrated Security. Sutta stu schema, l'utilizatori sò identificati à a basa di dati per i cuncorsi d'usu Windows NT è ùn sò micca necessariu di scrive una identità di utilizatore supplementari è password per accede à a basa di dati. Stu approcciu hè assai cumerciu trà l'amministratori di a basa di dati, perchè cambia a carga di a gestione di a gestione di a gestione di u situ, è facilitate a facilità di un signu unicu à l'usu finali.

Role

Sè vo site in un ambiendu cù un poghju di parechji usu, probite bè chì a creazione di i cunti di l'utilizatori è l'assignazione di permessi direttamente à elli hè abbastanza per i vostri bisogni. In casu, sè vo avete un gran numaru d'utilizatori, avete a probabili sia avvilite da u pesu di mantene e libri è i permessi adatti. Per facilitate stu casu, i basi di relazione sustene a nuzione di roli. Funzioni di a basa di basa funziona simili in gruppi di Windows NT. I cartulare di i contatti di u usu hè assignatu à u rolu (i) è i permessi sò attribuiti per u rolu cum'è un in regule in più di i contatti di u usu ind'è. Per esempiu, pudemu creà un rol DBA è aghjunte l'infurmazione di u usu di i nostri staffi amministrativi in ​​stu rolu. Quandu avemu fattu questu quì, pudemu assicurà un permessu specificu per tutti l'amministratori presentanu (è futuri) da facilmente assignà a permissione à u rolu. Una volta, i prucessi per creà roles varia da a plataforma à a plataforma. L'amministratori di MS SQL Server deve esse investigatu u sp_addrole prucessu guardatu mentre Oracle DBA utilizate a sintacula ROLE CREATE ROLE.

Granting Permissions

Avà chì avemu aghjustatu utilizatori à a nostra basa di dati, hè urdinatore per inizià a furfurze u sicuru aghjuntu permessi. U nostru primu passu serà dà cuncessione di permessi di basa di dati à i nostri utenti. Cumu ottinutu quì cù l'utilizazione di u sentenze SQL GRANT.

Eccu a sintaxis di l'affirmazioni:

GRANT
[ON

]
TO
[CANTA U POPULU CORSU]

Avà, aghju fighjatu in sta frasa strada di linea. U primu ligna, GRANT , permette di spicificà i permessi di tavuletta specifica chì vi cuncede. Questi sò o permessi per u nivellu di tola (cum'è SELECT, INSERT, UPDATE and DELETE) o permessi di basa di dati (cum'è CREATE TABLE, ALTER DATABASE e GRANT). Più più d'un permessu pò esse garantitu in una sola declarazione GRANT, ma i permessi per u nivellu di u permessi per u nivellu di a basa ùn sò micca bè cumminati in una sola dichjarazione.

A seconda linea, ON

, hè usata per spicificà a tabella affettata per permessi di u nivellu. Questa linea hè omitted si avemu cuncessendu i permessi di u nivellu di basa. A terza linea specifica l'utilizatore o rolu chì hè stata accettata i permessi.

Infine, a quinta linea, CON OPTION D'OPERATION, hè un facultante. In casu di sta linea hè cumprata in a dichjarazione, l'utilizatore affissatu hè ancu permessu di cuncede sti permessi à altri utilizatori. Avete chì l'OPCIe cù GRANT OPTION ùn ponu esse specificatu quandu i permessi sò attribuiti à un rolu.

Esempii

Eccu nant'à uni pochi esempi. In u nostru prima scopu, avemu trattatu pocu un gruppu di 42 operatore di l'intrattenimentu di dati chì anu aghjunghje è mantene i clienti di u cliente. Hè bisognu à accede à l'infurmazioni in a table di Clienti, mudificà questa informazione è aghjunghje novi registri à a tavula. Ùn ci anu micca bisognu di sguassà sanu una copia di a basa di dati. Prima, avemu duverà creà contatti utteri per ogni operatore è aghjunghje elli tutti per un rolu novu, DataEntry. In seguente, avemu usatu a segùne prununzia SQL per cunnette micca i permessi pertinenti:

GRANT SELECT, INSERT, UPDATE
ON Clienti
À DataEntry

Ci hè quì tuttu hè quì! Avà scambià u casu duvere site l'assignanu permessi di u basatu di basa di dati. Vulemu chì permetterà à i membri di u rolu di DBA per aghjunghje i novi tàvuli à a nostra basa di dati. Inoltre, vulemu chì sia capaci di cuncede altri utenti permessi per fà u listessu. Eccu u questionu SQL:

GRILL CREATE TABLE
A DBA
CON OPTION

Avemu chì avemu includitu a Cumpagnìa cù U GRANT OPTION per assicurà chì i nostri DBA puderanu assignà stu permessu à altri utilizatori.

Traspendu i permessi

Una volta avemu accertatu permessi, spessu pruvale necessariu di revucà à una data più appena. Fortunatamente, SQL provene micca a cumanda REVOKE per rinfriscà i permessi ottenuti prima. Eccu a sintassi:

REVOKE [OPTION GRANT] permessi
ON


FROM

Avete bisognu chì a sintaxis di questu cumandamentu hè simili à quellu di u cumandante GRANT. A sola diferenza hè chì CON OPERATION GRANT hè specificatu in a linea di cummanda di REVOKE in quantu à a fine di u cumandimu. Comu esempiu, imaginemu chì vulemu annunzià a permissione di a Maria chì anu vistu prima di rimbursà a copia di a basa di dati di Clienti. Avviaremu u cumandimu cumandante:

REVOKE DELETE
ON Clienti
FROM Maria

Ci hè quì tuttu hè quì! Ci hè un altru furmatu supplementatu da u servore SQL di Microsoft chì devi esse cede-l'ordine DENY. Questu cumanda pò esse utilizatu per denegà espliċitamente un permessu à un utilizatore chì altri pudere avè travagliatu per una parte di funzione o futuru rolu. Eccu a sintassi:

DENY
ON


TO

Esempii

Riturnà à u nostru esempiu previ, imagine chì Maria era ancu un membru di u rolu di i capelli chì anu ancu accessu à a table di Clienti. A noturazione REVOKE prublema ùn sanu micca bè per rinvià u so accessu à a tavula. Puderete sguassà l'autorizazione accunsentia cù una declarazione GRANT chì dirighja u so contu d'utente, ma ùn anu micca bisognu di i permessi guadagnati nantu à a so aderenza in u rolu di i diritti. In ogni casu, si avemu usatu una stima di DENY stablaria a so eridità di u permessu. Eccu cumanda:

DENY DELETE
ON Clienti
À Maria

U cumandimu DENY essenzalmentu crea un "permessu negativu" in i cuntrolli di accessu à basa di dati. Se avemu dicisu dopu à dà à Maria permiso di scaccià e fila di a tavola di Clienti, ùn pudemu micca simplificà l'usu di u cumandante GRANT. Questu comendariu sarà subitu inghjustatu da u DENY. Invece, avemu prima uttene u cumandariu REVOKE per sguassate l'autorizazione negativa cumu seguitu:

REVOKE DELETE
ON Clienti
FROM Maria

Avete bisognu chì u cumandimu hè precisamente u stessu cum'è quellu chì era usatu per sguassà un permessu pusitivu. Ricurdativi chì i cumandamenti DENY è GRANT cumanda u travagliu in una moda simili * mdash; creanu permessi (posittivi o negattivi) in u mecanismu di cuntrollu di accessu à basa di dati. U mandu REVOKE elimina tutti i permessi pusitivi è negattivi per l'usu specificu. Quandu u cumandimu hè statu emessu, Maria si puderà borra i fille da a tavula si ella hè membru di un rolu chì possa l'autorizazione. Oltremente, un cumanda GRANT puderia esse emesa per furnisce u permessu DELETE direttamente à u so contu.

In u corsu di stu articulu, avete amparatu un bonu trattu annantu à i miccanesi di cuntrollu di accessu sustegnu da a Lingua Query Standard. Questa intrata averebbe proporcionarle un bon puntu di partenza, ma vi vi sugnu di riferite à a vostra documentazione di u DBMS per amparà e maiori misure di segurità soprave u vostru sistema. Puderete truvà chì assai basa di dati sustene megliaghju di cuntrollu di accessu avanzatu, cumu cuncede permessi per e culonni specifiche.