Cum se creează o schemă în Oracle. Se actualizează schema, ALTER SCHEMA. Eliminarea unei baze de date MySQL

Am stăpânit crearea unui utilizator. Să vedem cum poate fi modificat un utilizator deja creat. Să presupunem că vrei să-i schimbi parola. De exemplu, la crearea unei baze de date, utilizatorii SYSŞi SISTEM primesc parole implicite, care pur și simplu trebuie înlocuite imediat după crearea bazei de date!!! În caz contrar, orice atacator familiarizat cu baza de date Oracol vă poate face rău pagube mari!!! Pentru a schimba parola, trebuie să utilizați comanda MODIFICA- aceasta este, de asemenea, o echipă destul de extinsă și nu vom lua în considerare tot ce poate face deocamdată. Este imediat de remarcat faptul că Oracol nu permite parole precum 123456 sau 543kolobok. De exemplu, încercați asta:

ALTER MANECIN DE UTILIZATOR IDENTIFICAT DE 123456 /

Primim:

ALTER UTILIZATOR DUMMY IDENTIFICAT DE 123456 * eroare la linia 1: ORA-00988: lipsă sau parolele incorecte

ALTER UTILIZATOR DUMMY IDENTIFICAT DE 543kolobok /

Primim:

ALTER UTILIZATOR DUMMY IDENTIFICAT DE 543kolobok * eroare la linia 1: ORA-00988: lipsă sau parolele incorecte

Adică parolele în Oracol trebuie să înceapă cu o literă, nu cu un număr! Dar poți folosi numere la mijloc sau la sfârșit! Apropo, încă nu înțeleg de ce au făcut asta? Vom lăsa asta la discreția ta. Oracle Inc.:) Să schimbăm parola pentru schemă MANUCHIN Cu PROST pe PIONER4:

MANECHINUL ALTER UTILIZATOR IDENTIFICAT DE PIONER4 /

Primim:

SQL> ALTER USER DUMMY IDENTIFICAT BY PIONER4 2 / Utilizator schimbat.

Acum totul este corect! Parola utilizatorului nostru a fost schimbată și putem verifica acest lucru:

CONECTAȚI DUMMY/PIONER4@PROBA

Primim:

SQL> CONNECT DUMMY/PIONER4@PROBA Conectat.

SQL> CONNECT SYSTEM/MANAGER@PROBA Conectat.

Folosind comanda MODIFICA- De asemenea, puteți modifica cotele de utilizatori în spații de tabel. De exemplu, tăiați MANUCHIN pentru cota de comportament prost pe tablespace UTILIZATORI până la 50 MB:

ALTER UTILIZATOR DUMMY QUOTA 50M PE UTILIZATORI /

Primim:

SQL> ALTER USER DUMMY 2 QUOTA 50M ON USERS 3 / Utilizator schimbat.

Acum MANUCHIN nu va depăși 50 MB. Ceea ce este suficient pentru exemplul nostru. Să luăm în considerare următorul concept aplicabil schemei bazei de date, și anume profil ( Profil). Folosind profiluri, puteți limita numărul de resurse de sistem și baze de date disponibile utilizatorului, precum și gestionați restricțiile impuse de parole. Dacă utilizatorului nu i se atribuie un profil implicit, profilul va fi utilizat IMPLICIT(aproape un joc de cuvinte!).

Să ne creăm profilul și să-l atribuim utilizatorului nostru:

CREATE PROFIL TODUMMY LIMIT PASSWORD_LIFE_TIME 180; /

Primim:

SQL> CREATE PROFILE TODUMMY LIMIT 2 PASSWORD_LIFE_TIME 180; Profilul a fost creat.

Profilul creat limitează valabilitatea parolei la 180 de zile. Să definim acest profil pentru utilizator MANUCHIN:

ALTER UTILIZATOR DUMMY PROFILE TODUMMY /

Primim:

SQL> ALTER USER DUMMY 2 PROFILE TODUMMY 3 / Utilizator schimbat.

Parola expiră acum PIONER4în diagramă MANUCHIN vor fi doar 180 de zile. Și, după aceasta, baza de date nu va accepta înregistrări cu această parolă. La crearea profilurilor, sunt utilizate o serie de resurse limitatoare. Le vom descrie puțin mai târziu. Să spunem dacă trebuie să blocați utilizator specific sisteme, acest lucru se poate face folosind același lucru ALTER UTILIZATOR:

ALTERĂ BLOCAREA CONTULUI MANECAN DE UTILIZATOR /

SQL> ALTER USER DUMMY ACCOUNT BLOCARE 2 / Utilizator schimbat.

Și, în consecință, deblocați utilizatorul:

ALTER DEBLOCAREA CONTULUI MANECAN DE UTILIZATOR /

Să obținem un utilizator blocat:

SQL> ALTER USER DUMMY ACCOUNT UNLOCK 2 / Utilizatorul a fost schimbat.

Să considerăm, de asemenea, un astfel de concept legat inextricabil de utilizatorii bazei de date ca rol ( rol). În esență, un rol este un grup care combină mai multe privilegii. Când utilizați roluri, puteți modifica nivelurile de privilegii pentru mai mulți utilizatori în același timp, ceea ce simplifică procesul de administrare într-o bază de date cu câteva sute de utilizatori. De exemplu, să creăm un rol DMROLE:

CREAȚI ROL DMROLE /

Primim:

SQL> CREATE ROLE DMROLE 2 / Rolul a fost creat.

Deocamdată acesta este un rol „vid”. Acum îi atribuim un număr de privilegii folosind operatorul ACORDA, De exemplu ALTER SESIUNE:

Acordați o sesiune de modificare pentru DMROLE /

Primim:

SQL> GRANT ALTER SESSION TO DMROLE 2 / Privilegii acordate.

Acum să atribuim acest rol utilizatorului nostru MANUCHIN bineinteles cu ajutorul operatorului ACORDA:

Acordați DMROLE CĂTRE MANECHIN /

Primim:

SQL> GRANT DMROLE TO DUMMY 2 / Privilegii acordate.

Iată diagrama acum MANUCHIN poate folosi privilegiul ALTER SESIUNE. Și, desigur, cel mai important lucru este „Ștergerea unui utilizator”! Ștergerea unui utilizator și a tuturor obiectelor din schema lui este destul de simplă:

SQL> DROP USER DUMMY CASCADE 2 / Utilizator șters.

Cuvânt cheie CASCADĂînseamnă a șterge tot ceea ce este asociat cu schema (utilizatorul). Este oarecum trist că totul se termină pentru noi. :) Astfel, acum cred că imaginea creării unei scheme (utilizator) și a lucrului cu ea a devenit mai clară pentru tine. Merită remarcat faptul că alocarea de roluri unui utilizator de bază de date nu este întotdeauna justificată, dar, așa cum am spus deja, simplifică foarte mult administrarea. Cred că ați observat deja că în prezent lucrăm doar prin SQL*Plus. Există, de asemenea, instrumente mai avansate pentru administrarea bazelor de date Oracol, un instrument atât de puternic ca, de exemplu Manager de întreprindere. Dar acesta este un subiect pentru o poveste separată. Și deocamdată nu avem nevoie să-l folosim. Iată o sarcină pentru tine: creați-vă propriul utilizator și mai multe obiecte în el și spuneți-mi ce ați făcut! Du-te! :)

Oracle DBMS, ca toți concurenții săi reali - sistem vechi. O astfel de longevitate nu ar fi fost posibilă fără un număr de solutii tehnice, cu succes (din acest punct de vedere) propus în vremuri străvechi. Dar, alături de aceasta, sistemul conține și exemple de defecte de proiectare inițiale. La un moment dat nu păreau așa, dar apoi a devenit foarte greu să le corectezi, deci doar în cele mai multe ultimele versiuni, au început să exploreze modalități de a rezolva problema programată neintenționat. Aceasta este problema „utilizatorilor” și „schemelor”.


Problemă

În Oracle, conceptele de „schemă” și „utilizator” sunt fuzionate inseparabil. Formal doi cuvinte diferite„user” și „schema” sunt folosite în Oracle pentru a însemna același lucru: „user-schema”. Documentația despre această chestiune spune cu timiditate că „când creați un utilizator (comanda CREATE USER), o schemă cu același nume este creată automat.” Pe de altă parte, nu există manipulări separate cu scheme în Oracle (comanda CREATE SCHEMA din Oracle este înșelătoare; nu creează o schemă, așa cum s-ar putea crede), așa că se dovedește că în sistemul conceptual Oracle, „schema”. ” = „utilizator”.

Pentru un dezvoltator, aceste două concepte nu sunt identice. Astfel, o schemă este un fel de container de obiecte stocate într-o bază de date, care poartă în mod tradițional o dublă sarcină funcțională: ca mijloc de organizare a datelor (există multe obiecte în baza de date, dar nu toate aplicațiile sunt interesate de toate) și ca mijloc de protecție a datelor de aplicații străine. Utilizatorul, în ideea sa originală, este o persoană anume care se poate conecta la SGBD pentru a lucra cu anumite date, a fi verificată pentru autoritate, monitorizată pentru acțiunile întreprinse etc.

Datele aparțin sistem informatic, întreprinderea și utilizatorii pot fi angajați și concediați. Cum pot simula acest mod de lucru în Oracle?



Soluţie

Poate că cineva a venit deja cu propria soluție la această problemă. Dacă nu, îl puteți folosi pe cel sugerat mai jos.


(1)
Pentru a stoca obiecte „departamentul HR”, creați o schemă/utilizator HR:

CREATE USER hr IDENTIFICAT BY you_password;
În continuare, după cum este necesar, clarificăm toate proprietățile acestui circuit, de exemplu:
ALTER USER hr DEFAULT TABLESPACE hr_ts DEFAULT TABLESPACE temp;
(2)
Pentru utilizatori, creăm utilizatori Oracle, de exemplu:
CREAȚI UTILIZATOR pete IDENTIFICAT PRIN parolă;
CREAȚI UTILIZATOR mary IDENTIFICAT BY 12345;

În continuare, utilizatorii trebuie să aloce proprietățile necesare. Într-un caz tipic, toate sunt la fel, așa că este logic să scrieți un singur scenariu care să ofere fiecărui nou „Petya” sau „Masha” puterile necesare. Ce ar trebui inclus acolo? Cel puțin, privilegiul de sistem CREATE SESSION. Dar, pe lângă asta, pentru a vă accesa tabelele în numele HR, ar trebui să emiteți ceva de genul

GRANT SELECT, INSERT, UPDATE, DELETE ON main_hr_table TO pete;
(3)

Asta nu e tot. Utilizatorul PETE se va putea, într-adevăr, să se conecteze la DBMS în nume propriu și să lucreze cu tabelul MAIN_HR_TABLE, dar va fi obligat să se refere la acesta prin numele complet: HR.MAIN_HR_TABLE, deoarece acesta nu este tabelul său. Este posibil să evitați acest lucru și să-l faceți să se simtă „ca acasă”? Can. Este suficient ca el să emită:

ALTER SESSION SET CURRENT_SCHEMA=hr;
Cu toate acestea, este mai convenabil să „împachetați” această comandă într-un declanșator care este declanșat atunci când vă conectați la „schema” PETE, adică să o emitați, de exemplu, în numele SYS:
CREAȚI SAU ÎNLOCUȚIȚI DEclanșatorul set_hr_schema_for_pete
DUPĂ CONECTARE PEte.SCHEMA
ÎNCEPE
EXECUTĂ IMMEDIAT „ALTER SESIUNE SET
CURRENT_SCHEMA=hr";
SFÂRŞIT;
/

Acum, atunci când se conectează la DBMS, utilizatorul PETE va vedea obiectele HR „ca și cum ar fi ale lor”, conform nume scurt, cu toate acestea, va trebui să-și numească propriile mese „în întregime”, de exemplu PETE.MY_PETE_TABLE, dar ni se pare că acest lucru nu contează.



Caracteristicile soluției propuse
  • trebuie automatizat
  • este imposibil să creați și să ștergeți obiecte
  • puteți utiliza auditul de sistem
Vladimir Prjialkovski,
coordonator al grupului de utilizatori Euro-Asiatic Oracle,
profesor la UCC Interface Ltd.

Sistem Schemă din punct de vedere al bazei de date, este un container de obiecte precum tabele, trigger-uri, proceduri stocate etc. Acest articol va discuta problemele creării și ștergerii unei scheme de baze de date pentru următorul DBMS:

  • Oracle: Schema este legată de utilizator, adică Numele schemei este de obicei cont utilizator. O schemă este creată atunci când un utilizator creează primul obiect și toate obiectele ulterioare create de acel utilizator devin parte din schema respectivă. În plus, Oracle vă permite să creați o schemă ca container simultan cu obiectele bazei de date.
  • MSSQL: la Microsoft SQL Server Din versiunea 2005, cuplarea hard între utilizatori și scheme a fost eliminată. Utilizatorii pot obține acces pentru a efectua anumite operații asupra obiectelor de schemă: citire, scriere, actualizare sau executare.
  • PostgreSQL: Schema este creată în interiorul unui obiect de bază de date. Un server poate gestiona mai multe baze de date, fiecare dintre acestea putând conține mai multe scheme. Adică, ca și în MSSQL, schema nu este asociată cu contul de utilizator.
  • MySQL: Conceptul Schema are aceeași semnificație ca baza de date. Baza de date este un container de obiecte la care utilizatorul are acces.
  • Derby: Schema nu este strâns legată de utilizator și este un container de obiecte pe care utilizatorul trebuie să aibă privilegiile corespunzătoare pentru a le accesa.

Crearea unei scheme, CREATE SCHEMA

Pentru a crea o schemă trebuie să utilizați un script SQL CREAȚI SCHEMA. Scheme diferite pot include obiecte cu același nume. La accesarea obiectelor scheme diferite trebuie să specificați numele schemei ca prefix. Pentru a crea o schemă, utilizatorul trebuie să aibă privilegiile corespunzătoare. Desigur, superutilizatorii au acest privilegiu.

Crearea unei scheme Oracle

Oracle este una dintre acele platforme DBMS care nu au suport explicit pentru comandă CREAȚI SCHEMA. Cu toate acestea, încă creează implicit o schemă atunci când utilizatorul își creează primul obiect de bază de date. Acest SGBD folosește comanda „CREATE SCHEMA” pentru a crea și a oferi acces la tabele și vizualizări într-o singură tranzacție.

Trebuie remarcat faptul că Oracle permite utilizarea suplimentară în instrucțiuni CREAȚI SCHEMA scripturi standard CREATE TABLE, CREATE VIEW și GRANT. Nu puteți utiliza extensii la aceste comenzi care sunt disponibile în Oracle dacă aceste comenzi sunt incluse în instrucțiunea CREATE SCHEMA. Sintaxă pentru crearea obiectelor cu o schemă.

CREATE SCHEMA AUTORIZATION opțiuni de schemă CREATE TABLE CREATE VIEW GRANT

Următorul exemplu creează un tabel și o vedere pentru schema „pictor”. CREAȚI SCHEMA accesul la obiecte este definit.

CREATE SCHEMA AUTHORIZATION painter CREATE TABLE vopsea (paint_id NUMBER PRIMARY KEY, paint_size NUMBER, color VARCHAR2(10)) CREATE VIEW large_paints AS SELECT paint_id, color FROM paint WHERE paint_size = 100 GRANT select ON large_paints TO scott;

Ordinea comenzilor de creare a obiectelor și de permisiune în instrucțiunea CREATE SCHEMA nu este critică, dar sintaxa trebuie totuși respectată. Oracle execută instrucțiunea CREAȚI SCHEMA numai dacă toate instrucțiunile CREATE și GRANT incluse în acesta au fost executate cu succes.

Crearea unei scheme MS SQL

În MS SQL DBMS folosind o tranzacție CREAȚI SCHEMA Puteți crea o schemă în același timp cu crearea de tabele și vederi în ea și puteți acorda sau refuza accesul la aceste obiecte folosind instrucțiunile GRANT, DENY sau REVOKE.

CREATE SCHEMA schema_name_clause [ [...n] ] ::= ( nume_schemă | AUTHORIZATION nume_proprietar | nume_schemă AUTHORIZATION nume_proprietar ) ::= ( definiție_tabel | definiție_vizualizare | declarație_acordare | declarație_revocare | declarație_denegare )

Parametrii scriptului:

  • nume_schemă
    Denumirea de identificare a schemei.
  • AUTORIZARE nume_proprietar
    Contul de utilizator al bazei de date care este proprietarul schemei.
  • definiție_tabel
    Script SQL pentru crearea unui tabel în interiorul unei scheme. Utilizatorul trebuie să aibă drepturi CREATE TABLE pe baza de date curentă.
  • view_definition
    Script SQL pentru crearea unei vederi în interiorul unei scheme. Utilizatorul trebuie să aibă drepturi CREATE VIEW pe baza de date curentă.
  • grant_statement
    Acordarea permisiunii oricărui obiect, cu excepția unei noi scheme.
  • revoke_statement
    Anulați permisiunea pentru orice obiect, cu excepția unei noi scheme.
  • deny_statement
    Refuzarea permisiunii oricărui obiect, cu excepția unei noi scheme.

Tranzacţie CREAȚI SCHEMA sunt atomice. Dacă apar erori în timpul instrucțiunii CREATE SCHEMA, niciunul dintre obiectele specificate nu este creat și nu se acordă permisiuni.

Obiectele care trebuie create folosind instrucțiunea CREATE SCHEMA pot fi listate în orice ordine, cu excepția vederilor care fac referire la alte vederi. În acest caz, vizualizarea de referință trebuie creată după vizualizarea la care se referă.

Instrucțiunea GRANT poate fi utilizată pentru a acorda permisiuni unui obiect înainte de a fi creat, iar instrucțiunea CREATE VIEW poate apărea înaintea instrucțiunilor CREATE TABLE care creează tabelele la care face referire vizualizare. În plus, instrucțiunile CREATE TABLE pot declara chei străine la tabelele definite mai târziu în instrucțiunea CREATE SCHEMA.

Crearea unei scheme PostgreSQL

O nouă schemă este creată în baza de date curentă a serverului cu care se stabilește conexiunea. Numele schemei trebuie să fie unic pentru această bază de date.

CREATE SCHEMA nume_schemă [ AUTHORIZATION nume de utilizator ] [ schema_element [ ... ] ] CREATE SCHEMA AUTHORIZATION nume de utilizator [ schema_element [ ... ] ]

Parametrii scriptului:

  • nume de utilizator
    numele de utilizator (numele rolului) al proprietarului schemei. Dacă numele de utilizator lipsește, atunci va fi folosit numele utilizatorului care execută acest script. Pentru a crea o schemă pentru un proprietar cu un rol diferit, trebuie să aveți drepturile pentru acest rol sau să fiți un superutilizator.
  • element_schemă
    definește un script SQL pentru crearea simultană de obiecte într-o schemă. Împreună cu schema, puteți crea TABLE, VIEW, INDEX, SEQUENCE, TRIGGER și puteți obține drepturile corespunzătoare pentru acestea. Dacă scenariul conține nume de utilizator AUTORIZARE

atunci toate drepturile vor aparține numelui de utilizator. După ce creați o diagramă, puteți crea și alte obiecte în ea.

Exemple de creare a unei scheme în PostgreSQL:

CREAȚI SCHEMA comenzi; CREAȚI SCHEMA AUTORIZARE alex; CREATE SCHEMA clienți; CREATE TABLE customers.companies (numele id nu este nul, numele varchar(64) nu este nul, adresa varchar(128), data de înregistrare); CREATE VIEW customers.v_companies AS SELECT id, name, address FROM customers.companies WHERE adresa NU ESTE NULL;

Notă: Conform standardului SQL, proprietarul unei scheme este întotdeauna „stăpânul” tuturor obiectelor din cadrul acesteia. PostgreSQL, la fel ca MSSQL, permite crearea de obiecte în cadrul schemelor, al căror „proprietar” poate să nu fie proprietarul schemei, dar are privilegiile corespunzătoare pentru schema dată.

Crearea unei baze de date MySQL În MySQL, conceptul de bază de date baza de date este echivalent cu conceptul de schemă din alte SGBD-uri precum MSSQL, PostgreSQL, Derby și are aceeași semnificație - un container de obiecte care nu sunt legate de utilizator. Crearea bazei de date se face folosind instrucțiunea.

CREAȚI BAZĂ DE DATE

Parametrii scriptului:

  • CREATE DATABASE db_name ;
    db_name Nume bază creată
  • date.
    DACĂ NU EXISTĂ
  • Dacă acest parametru nu este specificat, atunci când se creează o bază de date cu un nume existent, va apărea o eroare de execuție a comenzii.
    SET DE CARACTERE
  • Determinarea codificării tabelelor bazei de date.
    Determinarea ordinii de sortare a datelor.

Dacă, la crearea unui tabel, acești parametri CHARACTER SET și COLLATE nu sunt specificați, atunci codarea și ordinea de sortare sunt din nou tabelul creat sunt preluate din valorile specificate pentru baza de date curentă.

Exemple de utilizare este echivalent cu conceptul de schemă din alte SGBD-uri precum MSSQL, PostgreSQL, Derby și are aceeași semnificație - un container de obiecte care nu sunt legate de utilizator. Crearea bazei de date se face folosind instrucțiunea

CREATE DATABASE forum CREATE DATABASE forum CHARACTER SET utf8 COLLATE utf8_general_ci;

Crearea unui circuit Derby

CREATE SCHEMA ([ schemaName AUTHORIZATION username ] | [ schemaName ] | [ AUTHORIZATION username ] )

Numele schemei nu trebuie să conțină mai mult de 128 de caractere și să fie unic în baza de date. De asemenea, numele nu trebuie să înceapă cu prefixul SYS.

Numai proprietarul bazei de date poate crea o schemă cu un nume diferit de numele de utilizator/autentificare și numai proprietarul bazei de date poate defini un nume de utilizator AUTORIZARE cu un nume de utilizator/autentificare diferit de cel curent.

Notă: numele de utilizator poate aparține numai unui utilizator, nu unui rol.

CREAȚI SCHEMA AUTORIZARE CLIENȚI serg; CREAȚI SCHEMA AUTORIZARE loran;

Eliminarea unei scheme, DROP SCHEMA

Pentru a șterge o schemă, trebuie să utilizați un script SQL aruncați schema.

Eliminarea unei scheme Oracle

Pentru a șterge o schemă DBMS Oracle, trebuie să ștergeți utilizatorul; obiectele schema sunt șterse automat:

DROP USER nume_utilizator ;

Cuvântul cheie CASCADE înseamnă ștergerea tuturor obiectelor legate de schemă (utilizator).

Eliminarea Schemei MSSQL

DROP SCHEMA nume_schemă

Schema de ștearsă nu trebuie să conțină niciun obiect. Dacă schema conține obiecte, instrucțiunea DROP eșuează. Informațiile despre schemă pot fi văzute în vizualizarea catalog sys.schemas.

Eliminarea unei scheme PostgreSQL

O schemă poate fi ștearsă doar de proprietarul sau superutilizatorul acesteia. Trebuie reținut că proprietarul poate șterge o schemă și toate obiectele conținute în ea, chiar dacă nu îi aparțin.

Când ștergeți o schemă în PostgreSQL, puteți include în plus următoarele opțiuni:

DROP SCHEMA [DACA EXISTA] schema_name [, ...] [ CASCADE | RESTRICȚI]

Parametrii scriptului:

  • DACA EXISTA
    Se verifică disponibilitatea schemei. Dacă nu există nicio schemă, atunci nu va apărea o excepție.
  • CASCADĂ
    Ștergeți automat obiectele conținute în schemă.
  • RESTRICȚI
    Nu ștergeți schema dacă conține obiecte. Această setare este implicită.

Un exemplu de ștergere a schemei de comenzi împreună cu obiectele pe care le conține:

DROP SCHEMA comenzi CASCADE;

Eliminarea unei baze de date MySQL

În SGBD-ul MySQL, puteți șterge nu numai o bază de date goală.

DROP DATABASE nume_db

Dacă nu specificați parametrul IF EXISTS, atunci când încercați să ștergeți baza existenta date, va apărea o eroare de execuție a comenzii. Acest parametru disponibil în MySQL 3.22 și versiuni ulterioare versiuni ulterioare. La executarea comenzii DROP DATABASE, atât baza de date în sine, cât și toate obiectele care se află în ea sunt șterse.

Următorul exemplu șterge baza de date „forum”:

DROP DATABASE forum

Eliminarea schemei Derby

În DBMS Derby puteți șterge doar o schemă goală. Schemele SYS și APP (schema de utilizator implicită) nu pot fi șterse.

DROP SCHEMA nume_schemă RESTRICT;

Cuvântul cheie RESTRICT este necesar și obligă să se verifice prezența obiectelor în schema care este ștearsă.

Se actualizează schema, ALTER SCHEMA

ÎN Standardul SQL scenariu ALTER SCHEMA nedefinit.

ÎN PostgreSQL proprietarul sau numele schemei poate fi schimbat folosind scriptul ALTER SCHEMA.

ALTER SCHEMA nume OWNER TO newowner; ALTER SCHEMA name RENAME TO newname;

Pentru a utiliza ALTER SCHEMA trebuie să fiți proprietarul schemei și să aveți privilegiile corespunzătoare. Când schimbați numele schemei, trebuie să aveți privilegii CREATE pe baza de date curentă. Pentru a schimba calitatea de proprietar, trebuie să fiți membru al rolului corespunzător și să aveți privilegii CREATE în acel rol.

ÎN SGBD MSSQL Folosind scriptul ALTER SCHEMA, puteți muta obiecte de la o schemă la alta.

ALTER SCHEMA nume_schemă TRANSFER [ :: ] securable_name [;] ::= (Obiect | Tip | Schema XML colectare)

Utilizatori și scheme în MSSQL complet separat. Instrucțiunea ALTER SCHEMA este folosită numai pentru a muta obiecte între scheme în cadrul aceleiași baze de date. Următorul exemplu modifică schema Clienți prin mutarea tabelului Orașe din schema Persoane în acesta.

ALTER SCHEMA Clienti TRANSFER Persoane.Orase;