我有以下脚本,它会创建一个新数据库,一个新用户和登录名。我有一些客户使用的定制软件登录到数据库并创建必要的表,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]
任何建议,将不胜感激。
谢谢
你是说你**不能**使用'sa'登录,或者你可以**?你没有清楚地描述问题实际是什么。也许错误信息会有所帮助。 – 2014-08-28 15:16:30
sa工作正常,在脚本中创建的新用户不起作用。 – Belliez 2014-08-28 15:27:14