La base de données owner
est un peu un retour en arrière à une époque antérieure à l'introduction du schéma (approprié) dans SQL Server 2005.
Fondamentalement, un propriétaire de base de données est le propriétaire par défaut dbo
(propriétaire de la base de données) de la base de données, la base de données étant elle-même un objet de base de données .
À partir de la documentation SQL Server 2000 ...
Le dbo
est un utilisateur disposant d'autorisations implicites d'exécuter toutes les activités de la base de données.
Dans les versions antérieures de SQL Server, lorsqu'un schéma ne pouvait pas "posséder" un objet ( ou plutôt, il devrait être indiqué que tous les objets, tables, vues, etc. appartenaient à dbo
et qu'il n'y avait pas d'autres schémas ), il était nécessaire pour "utilisateur" à posséder ... il devrait aller sans dire pourquoi quelque chose a besoin de posséder la base de données (sinon les autorisations en général seraient plutôt difficiles.)
Donc, techniquement, dans les anciennes versions de SQL Server (ou des bases de données mises à niveau), ce n'était pas la table "Foo", mais bien la table "dbo.Foo" ... dont dbo
le propriétaire était le propriétaire.
Avec l’avènement de SQL Server 2005, vous pourriez avoir des objets de base de données appartenant à un schéma, comme par exemple un schéma nommé "bar" et une table nommée "Foo" ... cela devient bar.Foo
comme dans ...
SELECT * FROM bar.Foo WHERE etc = 'blah`;
La difficulté réside dans le fait que l'utilisateur qui crée la base de données est automatiquement défini comme propriétaire, ce qui entraîne des problèmes de rotation des employés, etc.
Par conséquent, il est recommandé de changer cela en sa
compte, ou peut-être (selon mon expérience) en un compte de domaine pouvant être administré par l'équipe des opérations / informatique de l'organisation.
Cet article explique la différence entre l’ancienne façon de faire «propriétaire» et le nouveau système de propriété basé sur un «schéma».
Pour comprendre la différence entre propriétaires et schémas, passons un peu de temps sur la propriété des objets. Lorsqu'un objet est créé dans SQL Server 2000 ou version antérieure, il doit avoir un propriétaire. La plupart du temps, le propriétaire est «dbo», également appelé propriétaire de la base de données.