Al trabajar con seguridad en SQL Server 2008, estoy tratando de otorgarle a un usuario permisos CREATE TABLE, pero solo dentro de un esquema específico. ¿El permiso CREATE TABLE solo se aplica a nivel de base de datos?
¿Puedo limitar al usuario para crear una tabla solo dentro de un esquema?
He intentado:
USE [databasename]
GRANT CONTROL ON Schema :: [schemaname] TO [username]
GO
y
USE [databasename]
GRANT ALTER ON Schema :: [schemaname] TO [username]
GO
Pero el usuario aún no puede crear una tabla dentro del esquema de destino. No es hasta que ejecuto esto, que el usuario puede crear una tabla:
USE [databasename]
GRANT CREATE TABLE to [username]
GO
fuente
Otorgar permiso para crear tablas a un usuario específico en una base de datos específica no solo requiere permisos CREATE TABLE sino que también requiere permisos ALTER para el esquema, por ejemplo, DBO.
Por ejemplo;
fuente
No hay nada sobre dicho permiso en la documentación de permisos aplicables a esquemas en 2008 R2: http://msdn.microsoft.com/en-us/library/ms187940.aspx
Por lo tanto, concluiría: no, no puede, crear tabla solo se puede controlar a nivel de base de datos (parece que esto se aplica a todos los asegurables).
fuente
Seguro que puede. Si tiene usuario1, defina su esquema predeterminado como usuario1 también. Otorgue permisos CREATE TABLE en la base de datos a este usuario. Eso es. user1 solo puede crear tablas dentro del esquema user1.
fuente