我使用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:
这些帐户中没有任何数据库具有任何特定的权限。 您应该明确授予您所需的权限。
我通常会通过login(terminal或使用像Sequel Pro这样的GUI)并执行所需的特权来完成此操作。 在这个例子中,我将用我的“testing”用户login到MySQL。
login后,您可以运行所需的MySQL命令:
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;