Ho bisogno di cambiare il proprietario di un diagramma di database in SQL Server 2005. Attualmente è di proprietà di me (dominio \ nomeutente.diagramName) e vorrei cambiarlo per essere di proprietà da dbo (dbo.diagramName). Ho pensato che potrei usare sp_changeobjectowner, ma credo che sia solo per le tabelle, le stored procedure, ecc ... Penso che sia abbastanza semplice, non sono stato in grado di trovare nulla attraverso una ricerca su google.Cambia proprietario del diagramma del database in SQL Server 2005
risposta
Alla fine, ho dovuto togliere tale schema utenti quindi eseguire il seguente aggiornamento ...
-- to identify the diagram id, name, & owner
select *
from dbo.sysdiagrams
-- to manually change the owner of a diagram
-- note: i derived that the principal_id =1 for dbo from above query
update
dbo.sysdiagrams set principal_id =1 where diagram_id = 1
Ho finito per ottenere l'aiuto di cui avevo bisogno di un DBA qui nel campus.
In questo articolo si dichiara che sarà necessario rimuovere te stesso come utente del db. Lo apri con l'utente che preferisci.
http://msdn.microsoft.com/en-us/library/ms171972(VS.80).aspx
Quando si tenta di eliminare l'utente, viene visualizzato ... TITOLO: Microsoft SQL Server Management Studio Errore durante l'eliminazione di 'dominio \ nome utente' utente. (Microsoft.SqlServer.Smo) Per informazioni, cliccare: http://bit.ly/gHA9 INFORMAZIONI SUPPLEMENTARI: verificata un'eccezione durante l'esecuzione di un'istruzione Transact-SQL o batch. (Microsoft.SqlServer.ConnectionInfo) L'entità di database è proprietaria di uno schema nel database e non può essere eliminata. (Microsoft SQL Server, Errore: 15138) Per assistenza, fare clic su: http://bit.ly/2lzKpz – Jason
Immagino che ci sia uno schema chiamato 'jason' che ti servirà per cambiare oggetto da quello schema ad esso. http://msdn.microsoft.com/en-us/library/ms173423.aspx –
Ho rimosso lo schema ed è stato in grado di rimuovere l'utente. Quando sono tornato al diagramma, il proprietario è stato cambiato in pubblico. Non è ancora quello che voglio. Altri suggerimenti? – Jason
Anche se non avrebbe aiutato in questo caso (perché semplicemente ricrea l'intero sysdiagrams
fila), questi script
ScriptDiagram2005 o ScriptDiagram2008
ti permettono di creare uno script INSERT di il contenuto dei diagrammi, da eseguire nuovamente sul database di origine (o un backup, una copia codificata o qualsiasi altra cosa). Potresti facilmente (sapendo cosa sai ora di principal_id
) ricreare il diagramma con un nuovo proprietario.
Basta trovare e modificare il resto di questa affermazione nello script
INSERT INTO sysdiagrams ([name], [principal_id], [version], [definition])
il vero vantaggio è essere in grado di reperirlo-controllo/backup del file di testo ...
UPDATE dbo.sysdiagrams
SET principal_id = 1
Impostare un Clausola WHERE se necessario. Il testo sopra suggerisce che è necessario rimuovere l'utente dal database, ma non ho dovuto farlo. Sto usando SQL2008 R2.
USE [db_name]
UPDATE dbo.sysdiagrams
SET principal_id = 1
se sopra dichiarazione non funziona, si può prendere una modifica su questo tavolo con tasto destro del mouse sulle dbo.sysdiagrams e selezionare Edit top 200 righe, quindi è possibile impostare colonna principal_id per tutti i record impostati manualmente a 1
Il metodo no sql ha funzionato per me. All'inizio non capivo bene cosa intendessi @hamed aj ma sì, per essere più esplicito, in System Tables, fai clic su dbo.sysdiagrams e scegli di modificare le prime 200 righe. Nella tabella che viene visualizzata, è sufficiente trovare la riga che definisce il diagramma di interesse e modificare il valore in principal_id in 1. Andare a rinfrescare l'elenco dei diagrammi e lo si vedrà aggiornare a dbo come proprietario. –
- 1. Database SQL Server 2005 'In Recovery'
- 2. Come cambio il proprietario di un database SQL Server?
- 3. Come proteggere un database dall'amministratore del server in Sql Server
- 4. Visual Studio 2015 - Schema del database del progetto SQL Server
- 5. Il proprietario del database SID registrato nel database master differisce dal proprietario del database SID
- 6. Trova la dimensione di più database in SQL Server 2005
- 7. Dimensioni del campo VARBINARY in SQL Server 2005
- 8. Aggiungi il diagramma del database al controllo del codice sorgente?
- 9. Isoweek in SQL Server 2005
- 10. SQL Server 2005 replica
- 11. Ruolo del database integrato in SQL Server 2005 per consentire l'esecuzione di stored procedure?
- 12. Generazione di script per l'appartenenza al ruolo del database in SQL Server 2005
- 13. Come ripristinare il database da MDF in SQL Server 2005?
- 14. Perdita di precisione numerica del server SQL 2005
- 15. Limiti pratici del database SQL-Server
- 16. Migrazione del database SQL Server in SQL Azure
- 17. Ruoli del database di SQL Server
- 18. Eseguire "backup" del database SQL Server Compact
- 19. Come cambiare il proprietario del database PostgreSql?
- 20. Creazione del diagramma del database in Visual Studio 2015
- 21. come trasferire stored procedure tra database di SQL Server 2005
- 22. Downgrade di SQL Server 2008 a SQL Server 2005
- 23. Trova una tabella su più database SQL SERVER 2005
- 24. acquisizione di attributi del proprietario del file/proprietario in Java
- 25. Come utilizzare BIT in SQL Server 2005
- 26. Supporto del codice SMO per sql 2005 e sql 2008
- 27. Ricerca testo in stored procedure in SQL Server 2005
- 28. Prestazioni MySQL vs SQL Server 2005/2008
- 29. Generazione automatica del diagramma del database per il DB PHPMyadmin?
- 30. Elimina database SQL Server
Come si può vedere eseguendo 'SELECT * FROM sys.database_principals',' principal_id' numero 1 è il principal 'dbo'. Immagino che si possa anche considerare 'principal_id' 0, che è pubblico. – jpmc26