如何在SQL Azure中设置数据库权限?

9

请问有人可以告诉我如何在SQL Azure中授予数据库权限吗?

当我执行创建表查询时,出现以下消息:

在testDB数据库中拒绝了CREATE TABLE权限。

提前感谢 :)


你连接到 SQL Azure 的用户是谁?它是一个有权限创建表的用户吗(例如,在创建 SQL Azure 服务器时创建的管理员用户)? - mcollier
5个回答

9

理想情况下,您应该只为用户分配所需的权限。如果您刚刚创建了一个新用户,并希望该用户能够在新数据库中执行任何操作,您可以使用服务器管理员用户在该数据库内运行以下命令:

EXEC sp_addrolemember 'db_owner', 'YourNewUser';

3

请看这些脚本。可能不是您正在寻找的确切脚本,但这将帮助您创建所需的脚本。

步骤1:在Azure主数据库上运行这些脚本。

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

步骤2:在实际的Azure数据库(例如,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;

请仔细检查您代码的格式。看起来'GO'被输错了。 - Richard Erickson


1

请确保您不要尝试在主数据库中运行创建表脚本。


0

SQL Azure使用与SQL Server相同的安全模式。看起来您使用了非dbo用户来创建表。我认为您可以使用GRANT命令来获取适当的权限。


SQL Azure在安全方面与SQL Server略有不同 - 使用不同的角色来管理登录和用户,如果我没记错的话。 - jamiebarrow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接