Amazon RDS - SQL Server - 主用户权限

Nir*_*mal 6 amazon-web-services amazon-rds

我创建了一个带有 SQL Server Express Edition 的 RDS 实例。实例设置一切正常,我也成功连接到它。

但是一旦使用主用户连接,我就无法在服务器上创建任何数据库、模式或表。它一直说用户没有执行操作的权限。

我可能会错过什么?默认情况下,主用户不应该拥有所有权限吗?如果没有,我应该如何进行?

谢谢你的帮助!

编辑:

这就是我想要运行的:

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])
)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

[错误] 42000 - [SQL Server] 数据库“rdsadmin”中的 CREATE TABLE 权限被拒绝。

Dre*_*ury 5

该错误消息表明您的用户无权在数据库“rdsadmin”中创建新表。

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

故障排除:

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

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

CREATE LOGIN [domain\username] FROM WINDOWS;
GO
EXEC sp_addsrvrolemember 'domain\username', 'sysadmin';
GO
Run Code Online (Sandbox Code Playgroud)

对于 MySQL:

  • rdsadmin 是使用 RDS 创建的管理员用户,拥有所有全局权限(仅在本地主机上)。这仅供 AWS/RDS 使用,而不供您使用。
  • 当我在 RDS 设置向导中创建一个 db/user 时,我的用户“test”被创建,它具有大多数全局权限(在 % 上)。

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

我通常会通过登录(在终端中或使用像 Sequel Pro 这样的 GUI)并执行所需的权限来做到这一点。在此示例中,我将使用我的“test”用户登录 mysql。

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

http://kb.mediatemple.net/questions/788/HOWTO%3A+GRANT+privileges+in+MySQL#dvhttp://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;
Run Code Online (Sandbox Code Playgroud)

当然,您必须替换为正确的数据库/用户名/密码(如果 db 或用户已存在,您可以跳过 db/user create 命令)。

您可能只想在 localhost 上授予特权,或者根据您要实现的目标授予不同的特权。