【发布时间】:2014-08-28 15:11:24
【问题描述】:
我有以下脚本,它创建一个新数据库、一个新用户和登录名。我有一些自定义软件,我的客户使用这些软件登录数据库并创建必要的表、SP 并用数据填充表。这些数据库是远程在线托管的,我可以完全访问。
**EDIT-> 我遇到的问题是我无法打开新连接并使用新用户创建任何表。它看起来像一个权限问题,因为它可以在 sa root 帐户登录时正常工作。
理想情况下,我想运行这个单一脚本,这样我就可以通过 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登录,还是可以?你还没有清楚地描述问题实际上是什么。也许一条错误消息会有所帮助。 -
sa 工作正常,脚本中创建的新用户不起作用。
标签: sql-server sql-server-2008 web-deployment