【问题标题】:Deploying SQL Server Databases for clients为客户端部署 SQL Server 数据库
【发布时间】: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


【解决方案1】:

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

一些相关阅读:

User Account Control and SQL Server

用户帐户控制在以下方面影响 Microsoft SQL Server 连接(SQL Server 登录)和限制对资源的访问 管理员的访问控制列表 (ACL)。

在 Windows Vista 和 Windows Server 2008 之前的版本中, 本地管理员组的成员不需要自己的 SQL 服务器登录,不需要授予管理员权限 SQL Server 中的权限。它们连接到 SQL Server 作为 内置服务器主体 BUILTIN\Administrators (B\A),它们有 管理员权限,因为 B\A 是 sysadmin 固定的成员 服务器角色。管理员权限在 Windows Vista 中被剥夺 和 Windows Server 2008,因此管理员用户无法连接到 SQL 服务器实例由于是 B\A,除非从一个 提升的客户端应用程序。

【讨论】:

  • 创建的用户使用“SQL Server 身份验证”,它只是一个用户名和密码,我没有使用 Windows 身份验证?
猜你喜欢
  • 2011-12-22
  • 1970-01-01
  • 2016-01-02
  • 2011-12-06
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多