Lo schema predefinito di SQL Server 2008 non viene rispettato?


9

Abbiamo appena copiato un database SQL 2008 su un altro server, a scopo di test. L'utente tipico che accede utilizza alcuni oggetti in un determinato schema. Diciamo che è utente fooe schema bar.

fooLo schema predefinito è barsia a livello di istanza che a livello di database. Tuttavia, quando fooaccede non riesce a trovare alcun oggetto nello barschema senza usare un nome completo.

Perché lo schema predefinito non dovrebbe funzionare qui?

Risposte:


13

Ha i diritti di amministratore di sistema su SQL Server? Perché se lo fa, qualsiasi utente sysadmin avrà per impostazione predefinita assegnato lo schema dbo , indipendentemente da ciò che è impostato nelle proprietà dell'utente per un database specifico.

Quindi, per avere uno schema predefinito un utente deve avere ruoli di database come db_owner, db_datawriter e così via, invece del ruolo server sysadmin.

Dimmi se non è il tuo caso.


1
Sei un dio e mi inchino alla tua conoscenza, ero perplesso fino a quando mi sono imbattuto in questo!
Jens,

1

Un altro scenario in cui può verificarsi questo problema (SQL 2008 R2) ...

Avevo un utente collegato a un login di autenticazione SQL, che stavo cercando di associare a uno schema esistente. Il login non aveva i diritti di amministratore di sistema , quindi la soluzione di cui sopra non ha aiutato.

Alla fine ho capito che il database era ancora configurato in modalità compatibilità SQL 2000. Il passaggio a SQL 2005 ha risolto il problema.


Stranamente, mi sembra di avere questo problema (utente collegato a un login di autenticazione SQL, che stavo cercando di associare a uno schema esistente), tranne per il fatto che il mio livello di compatibilità è "SQL Server 2016 (130)"
tbone

0

Presumerà che lo schema predefinito sul nuovo server sia dbo; Se lo schema non è stato copiato con il database.

Non è la soluzione, ma forse questo potrebbe aiutare, dando un'occhiata all'articolo msdn. http://msdn.microsoft.com/en-us/library/dd283095.aspx


Abbiamo configurato lo schema predefinito per foosul nuovo server. È impostato barsia a livello di utente dell'istanza sia a livello di utente del database.
John Cromartie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.