2012-06-26 4 views
1

Je sais que je ne peux pas transformer mon utilisateur en RDS en administrateur système ... mais puis-je au moins changer le propriétaire de la base de données de rdsa à mon propre utilisateur? Si j'utilise SSMS et aller changer le propriétaire dans les propriétés de base de données, je reçois le message:Amazon RDS SQL Server Changer le propriétaire de la base de données

The proposed new database owner is already a user or aliased in the database 

Pourquoi je veux faire au lieu de simplement ajouter mon utilisateur au rôle db_owner?

J'ai vues indexées je veux créer, et en essayant de le faire, je reçois l'erreur

Index cannot be created on view '...' because the underlying object '...' has a different owner. 

Je sais que je peux utiliser manuellement AUTORISATION ALTER sur les objets sous-jacents pour permettre cela, comme décrit ici: https://dba.stackexchange.com/questions/9436/sql-server-2008-cannot-create-index-on-indexed-view. Mais je ne veux vraiment pas le faire pour chaque objet référencé par chacune de mes vues indexées.

Je suis certainement ouvert aux suggestions d'approches alternatives.

Merci.

Répondre

2

L'index ne peut pas être créé dans la vue '...' car l'objet sous-jacent '...' a un propriétaire différent.

C'est le vrai problème que vous essayez de résoudre, non? Changer le propriétaire de la base de données (ce qui serait fait en exécutant ALTER AUTHORIZATION ON DATABASE::<dbname> TO <loginname>) est juste un hareng rouge.

Pour résoudre ce problème, il est peu probable que vous ayez besoin de changer le propriétaire du voir, et probablement la solution correcte est de créer la vue dans le même schéma que la table sous-jacente:

create view schema.indexedView 
with schemabinding 
as 
select ... 
from schema.table 
where ... 

Notez que je dis « probable » et « probablement », cela excuse pas que je suis incertain de la solution. C'est parce que seulement vous pouvez nous dire qui devrait être le propriétaire, en fonction des règles d'affaires spécifiques, les paramètres d'audit et les autorisations d'accès de votre site. En outre, le fait que tout soit contenu dans la base de données (la table, la vue indexée, le schéma contenant la table et le propriétaire du schéma) signifie que le fait qu'il s'agisse d'une instance RDS est complètement dénué de pertinence.

+0

En effet, la vue est destinée à être dans un schéma distinct. Puis-je modifier le propriétaire du schéma secondaire afin que tous ses objets appartiennent au compte administrateur RDS? ou y a-t-il un autre moyen? – Jeff

+1

Vous pouvez avoir les deux schémas appartenant au même utilisateur: ['modifier l'autorisation sur le schéma :: foo to bar'] (http://msdn.microsoft.com/en-us/library/ms187359.aspx) –

+0

Bingo. J'ai défini le propriétaire du schéma secondaire sur le compte d'administrateur RDS intégré. Merci! – Jeff

Questions connexes