sql-server - rol - tipos de usuarios en sql server
Roles, esquemas, usuarios de SQL Server (2)
He estado intentando averiguar por qué SQL Server tiene el esquema db_owner
y el db_owner
. Esto es muy confuso He estado buscando respuestas y hasta ahora esto es lo que mi entendimiento dice:
- Todas las tablas y objetos (como restricciones, etc.) pertenecen a un esquema.
DBO
es el esquema predeterminado. - Un usuario puede tener permiso para editar cada objeto o el esquema. Un permiso en el esquema extiende el permiso a todos los objetos dentro de ese esquema. Por lo tanto, no tiene que otorgar permiso a cada objeto individual.
- Un grupo de roles permisos juntos por conveniencia.
Si algo de esto es incorrecto, hágamelo saber. Pero creo que hasta ahora todo bien. Ahora mis preguntas son:
- ¿Qué es exactamente el esquema
db_owner
como se ve en el cuadro de diálogo "Usuario de la base de datos" de SQL Server Management Studio? Y en el mismo diálogo, define el "Esquema predeterminado" comodbo
. ¿Por qué no son los dos lo mismo? Si de forma predeterminada SQL Server usadbo
para crear todos los objetos, ¿de qué sirvedb_owner
? - ¿Por qué un usuario querría tener un esquema? Ya estás asignando permisos / roles. ¿Qué
db_accessadmin
proporciona ser dueño dedb_accessadmin
? - ¿Puede dar un ejemplo de cuándo crea objetos bajo el esquema
db_owner
y el esquemadb_accessadmin
? En otras palabras, ¿alguien usa legítimamente esos esquemas?
Estoy citando el siguiente del siguiente enlace.
https://msdn.microsoft.com/en-us/library/bb669061(v=vs.110).aspx
SQL Server se envía con diez esquemas predefinidos que tienen los mismos nombres que los usuarios y roles de base de datos incorporados. Estos existen principalmente por compatibilidad con versiones anteriores. Puede soltar los esquemas que tienen los mismos nombres que los roles de base de datos fijos si no los necesita. No puede soltar los siguientes esquemas:
dbo
guest
sys
INFORMATION_SCHEMA
Un esquema de SQL Server es simplemente un contenedor de objetos, como tablas, procedimientos almacenados, etc. Un rol de base de datos es un grupo de principales, como inicios de sesión de Windows, usuarios de servidores sql, etc.
La idea es que pueda tener el rol de decir "TI" y tener todos los usuarios de TI bajo ese rol. Entonces puede tener un esquema llamado "IT" y tener todas las tablas que pertenecen a IT debajo de eso. Fuera de la caja, SQL Server crea esquemas coincidentes para cada usuario y función predeterminados en la base de datos, pero creo que la intención es personalizar esto para que coincida con las necesidades de su organización.
Este artículo tiene más información sobre las diferencias entre propietarios y esquemas. Esta pregunta sobre también puede ser útil.