Ma chi è il DBO e il DBOO?
SQL Server - La gestione della sicurezza

All'interno di SQL server si possono avere due tipi di proprietà: proprietario di database (DBO), proprietario di oggetto del database (DBOO).


Il proprietario del database (o DBO) è la persona che ha creato un database. C'è solo un DBO in un database. Il DBO ha pieni poteri, tutti i privilegi, all'interno del database che possiede e può:

  • permettere ad altri utenti di accedere al database
  • fornire permessi agli utenti di creare oggetti ed eseguire comandi all'interno del database
  • fornire gruppo (che permette di fornire o togliere più facilmente permessi); per default ogni utente è un membro del gruppo public a meno di una esplicita assegnazione ad un altro gruppo
  • assegnare utenti a gruppo e aggiunge account di tipo guest, che danno agli utenti accessi limitati al database
  • Il proprietario del database può accedere all'SQL Server usando un assegnato login ID e una password. Nel proprio database tale utente è riconosciuto come DBO, in altri database è riconosciuto in base al suo nome utente (username).

    Quando si installa SQL Server SA è il DBO del database master e SA è anche trattato come il DBO di ogni database che usa.

    Lo stato di DBO può essere riassegnato ad un utente diverso. Solo un login ID può essere il DBO di un database, sebbene altri login ID possono essere fatti alias di DBO.

    Permessi di un DBO:

    permessi automaticamente dati al DBO che non può trasferire ad altri utenti:
  • ALTER DATABASE
  • CHECPOINT
  • DBCC
  • DROP DATABASE
  • GRANT e REVOKE permessi sulle istruzioni
  • LOAD DATABASE
  • LOAD TRANSACTION
  • SETUSER
  • permessi su istruzioni automaticamente dati al DBO che può dare ad altri utenti:
  • CREATE PROCEDURE
  • CREATE TABLE
  • CREATE VIEW
  • CREATE TRANSACTION

  • Il proprietario dell'oggetto del database (o DBOO) è l'utente che crea l'oggetto di quel database. Gli oggetti del database sono tabelle, indici, viste e procedure. Prima il DBO deve dare all'utente il permesso di creare il particolare tipo di oggetto. Il DBOO può creare un oggetto e dare permessi su tale oggetto ad altri utenti che possono usare tale oggetto.

    Il DBOO non ha speciali login ID e password. Al creatore dell'oggetto del database gli vengono automaticamente garantiti tutti i permessi su tale oggetto. Un DBOO deve esplicitamente dare permessi ad altri utenti prima che essi possano accedere all'oggetto. Anche il DBO non può usare un oggetto senza che il proprietario dell'oggetto non gli fornisce appropriato permesso. In qualsiasi modo, il DBO e il SA possono impersonare ogni altro utente nel database.

    Non ci sono comandi per trasferire la proprietà di un oggetto; se un DBOO deve essere cancellato da un database, prima deve essere cancellato l'oggetto posseduto.

    Permessi di un DBOO:

    permessi automaticamente dati al DBO che non può trasferire ad altri utenti:
  • ALTER TABLE
  • CREATE INDEX
  • DROP INDEX
  • DROP TABLE
  • GRANT e REVOKE permessi sulle istruzioni per tale tabella
  • permessi su istruzioni automaticamente dati al DBO che può dare ad altri utenti:
  • SELECT
  • UPDATE
  • INSERT
  • DELETE
  • EXECUTE