2014-08-28 118 views
0

我有以下脚本,它会创建一个新数据库,一个新用户和登录名。我有一些客户使用的定制软件登录到数据库并创建必要的表,SP和用数据填充表。数据库远程在线托管,我可以完全访问。为客户部署SQL Server数据库

**编辑 - >我的问题是,我无法打开一个新的连接,并使用新的用户创建任何表。它看起来像一个权限问题,因为它适用于sa帐户登录。

理想我想运行这个简单的脚本,所以我可以到一个新的客户端通过SQL Server Management Studio中方便地与最低做文章部署一个新的数据库

请参阅我下面的脚本:

-- SEARCH AND REPLACE THE FOLLOWING TERMS 
-- 
-- db_TestDatabase   Database name 
-- TestPa$$w0rd   password 
-- TestUser1    username 

use master 
go 

--create a test database 
CREATE DATABASE [db_TestDatabase] 
GO 

--create user login 
CREATE LOGIN [TestUser1] WITH PASSWORD=N'TestPa$$w0rd' 
GO 
--create user in database 
CREATE USER [TestUser1] FOR LOGIN [TestUser1] WITH DEFAULT_SCHEMA=[test_Schema] 
GO 
--create role 
CREATE ROLE [test_Role] AUTHORIZATION [dbo] 
GO 
--create schema 
CREATE SCHEMA [test_Schema] AUTHORIZATION [TestUser1] 
GO 
--apply permissions to schemas 
GRANT ALTER ON SCHEMA::[test_Schema] TO [test_Role] 
GO 
GRANT CONTROL ON SCHEMA::[test_Schema] TO [test_Role] 
GO 
GRANT SELECT ON SCHEMA::[test_Schema] TO [test_Role] 
GO 
GRANT DELETE ON SCHEMA::[dbo] TO [test_Role] 
GO 
GRANT INSERT ON SCHEMA::[dbo] TO [test_Role] 
GO 
GRANT SELECT ON SCHEMA::[dbo] TO [test_Role] 
GO 
GRANT UPDATE ON SCHEMA::[dbo] TO [test_Role] 
GO 
GRANT REFERENCES ON SCHEMA::[dbo] TO [test_Role] 
GO 
--ensure role membership is correct 
EXEC sp_addrolemember N'test_Role ', N'TestUser1' 
GO 
--allow users to create tables in test_Schema 
GRANT CREATE TABLE TO [test_Role] 
GO 
--Allow user to connect to database 
GRANT CONNECT TO [TestUser1] 

任何建议,将不胜感激。

谢谢

+0

你是说你**不能**使用'sa'登录,或者你可以**?你没有清楚地描述问题实际是什么。也许错误信息会有所帮助。 – 2014-08-28 15:16:30

+0

sa工作正常,在脚本中创建的新用户不起作用。 – Belliez 2014-08-28 15:27:14

回答

0

这可能是用户访问控制问题,请尝试右键单击Management Studio并以管理员身份运行,如果你有特权,它可能会过去,你看到的问题。

一些相关阅读:

User Account Control and SQL Server

用户帐户控制影响 连接(SQL Server登录)的条款和限制上 管理员的访问控制列表对资源的访问的Microsoft SQL Server (ACL)。

在除Windows Vista和Windows Server 2008的早期版本中,本地管理员组的成员 不需要他们自己的SQL Server登录,他们并不需要被授予管理员在SQL Server内部 权限。它们连接到SQL Server作为 内置服务器主体BUILTIN \ Administrators(B \ A),并且它们具有 管理员权限,因为B \ A是sysadmin固定的 服务器角色的成员。 Windows Vista 和Windows Server 2008中删除了管理员权限,因此管理员用户无法通过B \ A连接到SQL 服务器实例,除非从提供的客户端应用程序连接 。

+0

用户创建使用“SQL Server身份验证”,这只是一个用户名和密码,我不使用Windows身份验证? – Belliez 2014-08-28 15:30:22

相关问题