Amazon RDS – SQL Server – 主用户权限

我使用SQL Server Express Edition创build了一个RDS实例。 实例设置一切正常,我也成功连接到它。

但是,一旦连接使用主用户,我不能在服务器上创build任何数据库,架构或表。 它一直说用户没有执行操作的权限。

我可以错过什么? 主用户不应该默认拥有所有的权限吗? 如果不是,我应该怎么做?

谢谢你的帮助!

编辑:

这是我试图运行:

CREATE TABLE [dbo].[wt_category] ( [sys_id] bigint NOT NULL IDENTITY(1,1) , [sys_timestamp] timestamp NOT NULL , [country] varchar(5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [days] date NOT NULL , [pages] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL DEFAULT NULL , [visits] int NULL DEFAULT NULL , [page_impressions] int NULL DEFAULT NULL , [visits_w_product] int NULL DEFAULT NULL , [products] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , PRIMARY KEY ([sys_id]) ) 

我得到这个错误:

[Err] 42000 – [SQL Server] CREATE TABLE权限在数据库“rdsadmin”中被拒绝。

错误消息表明您的用户没有权限在数据库“rdsadmin”中创build新表。

检查“rdsadmin”数据库是否存在,并且具有正在尝试执行命令的用户的正确权限。

故障排除:

对于SQL Server,你可能想要这样的东西:

将当前的pipe理员用户添加到SQL Server Express 2008

 CREATE LOGIN [domain\username] FROM WINDOWS; GO EXEC sp_addsrvrolemember 'domain\username', 'sysadmin'; GO 

对于MySQL:

  • rdsadmin是使用RDS创build的pipe理员用户,具有全局特权(仅在本地主机上)。 这仅适用于AWS / RDS,不适用于您。
  • 当我在RDS设置向导中创build了一个数据库/用户时,我的用户'test'被创build,它拥有大部分全局特权(%)。

这些帐户中没有任何数据库具有任何特定的权限。 您应该明确授予您所需的权限。

我通常会通过login(terminal或使用像Sequel Pro这样的GUI)并执行所需的特权来完成此操作。 在这个例子中,我将用我的“testing”用户login到MySQL。

login后,您可以运行所需的MySQL命令:

http://kb.mediatemple.net/questions/788/HOWTO%3A+GRANT+privileges+in+MySQL#dv或http://library.linode.com/databases/mysql/arch-linux有这方面的例子,但这里是一个简单的例子:

 CREATE DATABASE testdb; CREATE USER 'testuser'@localhost IDENTIFIED BY 'CHANGEME'; GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost; 

当然,您将不得不用正确的数据库/用户名/密码来replace(如果数据库或用户已经存在,可以跳过db / user create命令)。

您可能只想在本地主机上授予权限,或者根据您要实现的内容而有所不同。

在Amazon RDS SQL Server实例上,Amazon RDS rdsa用户使用“ rdsadmin ”数据库进行实例pipe理。 它将显示为新RDS实例上唯一的非系统数据库。 虽然主用户有权执行服务器上的大部分操作,但您将无法修改此数据库,也不应该实际需要。 有关RDS主用户限制的更多信息,请访问: Amazon RDS上的SQL Server

为了创build一个表,你需要先为你的数据创build一个新的数据库,然后你可以在这个新的数据库中创build你的表。

以下脚本给出了创build数据库,创build表,插入,select,然后删除表和数据库的示例。 使用您在启动RDS时创build的“主”帐户login,您应该有权限运行此脚本没有问题。

 USE master; CREATE DATABASE NewDB; GO USE NewDB; CREATE TABLE NewTable (Msg TEXT); INSERT INTO NewTable (Msg) VALUES ('THIS SHOULD WORK'); SELECT * FROM NewTable; DROP TABLE NewTable; USE master; DROP DATABASE NewDB;