2012-02-11 11 views
8

¿Alguien podría decirme cómo otorgar permisos para la base de datos en SQL Azure?¿Cómo establecer permisos para la base de datos en sql azul?

Cuando ejecuto crear consulta de tabla, estoy terminando con el siguiente mensaje:

permiso CREATE TABLE negado la base de datos TestDB

Gracias de antemano :)

+0

lo que el usuario está conectando a SQL Azure.? ¿Es un usuario que tiene permisos para crear una tabla (por ejemplo, el usuario administrador creado al crear el servidor SQL Azure)? – mcollier

Respuesta

0

SQL Azure utiliza el mismo modo de seguridad que SQL Server. Parece que usa un usuario que no es dbo para crear una tabla. Creo que puedes usar el comando GRANT para obtener el permiso adecuado.

+0

SQL Azure funciona de forma ligeramente diferente a SQL Server en términos de seguridad: utiliza diferentes roles para los inicios de sesión y para los usuarios IIRC. – jamiebarrow

1

Asegúrese de no estar intentando ejecutar el script de creación de tabla en la base de datos maestra.

6

Idealmente, asignaría solo los permisos necesarios para el usuario. Si acaba de crear un nuevo usuario que desea ser capaz de hacer cualquier cosa en la nueva base de datos, puede ejecutar el siguiente comando en el interior de esa base de datos utilizando un usuario administrador del servidor:

EXEC sp_addrolemember 'db_owner', 'YourNewUser'; 
3

Tome un vistazo a estos guiones .Esta no puede ser el guión exacto que está buscando for.But esto le ayudará a crear la secuencia de comandos que desea

PASO 1: Ran estos scripts en MasterDb azul

CREATE LOGIN mydb_admin 
WITH PASSWORD = 'nnn' 
GO 
CREATE LOGIN mydb_user 
WITH PASSWORD = 'nnnnnnnnn 
GO 

'

Paso 2: Ran los guiones siguientes en el azul real db por ejemplo, mydb

CREATE USER mydb_admin FROM LOGIN mydb_admin ; 
EXEC sp_addrolemember 'db_datareader', 'mydb_admin'; 
EXEC sp_addrolemember 'db_datawriter', 'mydb_admin'; 
GRANT CONNECT TO mydb_admin; 
GRANT SELECT TO mydb_admin; 
GRANT EXECUTE ON [dbo].[procDumpRowsInto_De_Common] TO [mydb_admin] AS [dbo] 

CREATE USER mydb_user FROM LOGIN mydb_user; 
EXEC sp_addrolemember 'db_datareader', 'mydb_user'; 
EXEC sp_addrolemember 'db_executor', 'mydb_user'; 
GRANT CONNECT TO mydb_user; 
GRANT SELECT TO mydb_user; 
+0

Por favor, revise el formato de su código. parece que 'GO está mal escrito. –

Cuestiones relacionadas