Creați schema (transact-sql)

Numele prin care schema este identificată în această bază de date.

Specifică numele participantului la nivel de bază de date care deține schema. Acest participant poate avea alte scheme, iar schema curentă nu poate fi utilizată în mod implicit.







Specifică o instrucțiune CREATE TABLE care creează un tabel în interiorul schemei. Participantul care execută această instrucțiune trebuie să aibă permisiunea CREATE TABLE în baza de date curentă.

Specifică o instrucțiune CREATE VIEW care creează o vizualizare în cadrul schemei. Participantul care execută această instrucțiune trebuie să aibă permisiunea CREATE VIEW în baza de date curentă.

Specifică o instrucțiune GRANT care acordă permisiunea unui obiect protejat, cu excepția noii scheme.

Specifică o instrucțiune REVOKE care anulează permisiunile pentru orice obiect protejat, cu excepția noii scheme.

Specifică instrucțiunea DENY care interzice permisiunile pentru orice obiect protejat, cu excepția noii scheme.

Instrucțiunile care conțin CREATE SCHEMA AUTHORIZATION, dar nu specifică un nume, sunt permise numai pentru compatibilitate înapoi.

CREATE SCHEMA creează o schemă, acesta conține tabele și vizualizări, precum și acorda permisiunea, revocați sau Deny orice obiect într-o singură poate fixa declarație. Această instrucțiune ar trebui executată ca un pachet separat. Utilizând instrucțiunea CREATE SCHEMA, obiectele sunt create în schema generată.

CREATE SCHEMA tranzacțiile sunt atomice. Dacă apar erori în timpul executării instrucțiunii CREATE SCHEMA, nu se creează niciunul dintre obiectele protejate specificate și nu se acordă nici o permisiune.

Obiectele protejate pe care trebuie să le creați utilizând instrucțiunea CREATE SCHEMA pot fi listate în orice ordine, cu excepția vederilor care fac trimitere la alte vizualizări. În acest caz, punctul de vedere trebuie să fie creat după transmiterea la care se referă.







Astfel, prin utilizarea GRANT poate acorda permisiunea de pe un obiect înainte de a fi creat, iar CREATE VIEW pot apărea înainte de instrucțiuni CREATE TABLE, creați tabele care se face referire de către punctul de vedere. În plus, instrucțiunile CREATE TABLE pot declara chei străine tabelelor definite ulterior în instrucțiunea CREATE SCHEMA.

Instrucțiunile CREATE SCHEMA sprijină DENY și REVOKE. Clauzele DENY și REVOKE vor fi executate în ordinea în care apar în instrucțiunea CREATE SCHEMA.

Un membru care execută instrucțiunea CREATE SCHEMA poate specifica un alt membru al bazei de date ca proprietar al schemei create. Pentru a face acest lucru, aveți nevoie de permisiuni suplimentare, descrise în subsecțiunea "Permisiuni" mai târziu în această secțiune.

Proprietarul schemei este unul dintre următorii membri de nivel de bază de date: utilizatorul bazei de date, rolul bazei de date, rolul aplicației. Obiectele create în schemă sunt deținute de proprietarul schemei și au o valoare NULL pentru principal_id în sys.objects. Posesia obiectelor conținute în schemă poate fi transferată oricărui participant la nivelul bazei de date, dar proprietarul schemei are întotdeauna permisiunea de control pentru obiectele din schemă.

Dacă specificați un participant valabil (utilizator sau grup) ca proprietar al obiectului atunci când creați obiectul bazei de date, acest participant va fi adăugat la bază de date ca schemă. Noua schemă va aparține acestui membru al domeniului.

Notă de depășire

Instrucțiunile CREATE SCHEMA care nu specifică un nume de schemă sunt acceptate în prezent doar pentru compatibilitate înapoi. Astfel de instrucțiuni nu creează, de fapt, o schemă în cadrul bazei de date, ci creează tabele și vizualizări și oferă, de asemenea, permisiuni. Participanții nu au nevoie de permisiuni CREATE SCHEMA pentru a executa această formă anterioară a instrucțiunii CREATE SCHEMA, deoarece schema nu este creată. Această caracteristică nu va fi inclusă în versiunile ulterioare ale SQL Server.

Necesită permisiunea CREATE SCHEMA în baza de date.

Pentru a crea obiectul specificat în instrucțiunea CREATE SCHEMA, utilizatorul trebuie să aibă permisiunea CREATE corespunzătoare.

Pentru a atribui un alt utilizator proprietarului schemei create, participantul trebuie să aibă permisiunea IMPERSONATE pentru acest utilizator. Dacă rolul bazei de date este specificat ca proprietar, apelantul trebuie să aibă una dintre următoarele permisiuni: membru de rol sau permisiune ALTER pentru acest rol.

Pentru a asigura compatibilitatea înapoi a sintaxei, permisiunile din CREATE SCHEMA nu sunt bifate deoarece schema nu este creată.

Următorul exemplu creează o schemă Sprockets. deținută de Annik. care conține tabelul NineProngs. Instrucțiunea oferă o permisiune SELECT pentru Mandar și dezactivează SELECT pentru Prasanna. Rețineți că sprockets și NineProngs sunt create într-o singură instrucțiune.







Trimiteți-le prietenilor: