0

我经常使用 ASP.NET 和 SQL Server 2005 开发小型 Internet 应用程序。我的数据库始终只能由一个应用程序通过 ASP.NET Web 服务或类似的东西访问。

当我开发应用程序并在我的开发计算机 (SQLExpress 2008) 和托管服务器 (SQL Server 2005) 之间来回移动数据库时,我最终总是会得到一堆似乎可以裁剪的所有者/角色/模式/登录等启动并控制数据库的各个部分。

我只知道 SQL Server 是危险的,我只想设计数据库,但我总是不得不更改数据库并最终得到各种权限错误(例如,在传输数据库后尝试打开图表时)。

有没有办法简单地告诉 SQL Server Management Studio “嘿,我是唯一会使用这个愚蠢的数据库的人,所以让我来做吧?”

就像一些命令将所有这些部分设置为“dbo”或类似的东西?

4

4 回答 4

1

我假设您使用的是 Windows。确保您使用 Windows 身份验证连接到 SQL,并为您的帐户提供系统管理员权限。现在,您创建的所有内容(创建表表名、创建视图视图名)都将自动将 dbo 作为所有者。

于 2009-05-16T16:42:35.540 回答
1

不幸的是,您的问题有几个简单的答案,但您可能不会喜欢它们,因为它们需要您投资于 SQL Server 技能。

您应该查看的第一个工具是 Visual Studio 2008 Database Developer Edition。此版本具有您正在寻找的管理工具来管理架构、用户……我认为这现在包含在 Visual Studio 2008 开发版中

第二种方法是接受 SQL Server 管理,并且对编写 DDL 脚本感到满意。目标是达到这样的程度:您可以以可预测的方式将更改部署到 SQL Server,从开发环境到测试并最终部署到生产环境。

于 2009-05-18T01:29:37.010 回答
0

问题的症结在于您来回移动数据库本身。数据库通过登录到用户映射以及其他设置(如加密密钥、msdb 过程的使用和维护计划等)与它们的主机 SQL 实例紧密耦合。您可以通过仔细使用专用 SQL 身份验证来最大限度地减少一些影响,但这并不能完全消除问题。真正的解决方案是您应该有一个部署脚本并通过执行您之前在开发数据库上测试过的 T-SQL 脚本将更改应用到您的生产数据库,而不是通过“来回”移动数据库.

于 2009-05-18T01:13:06.563 回答
0

我创建了所有对象,专门指定我希望将它们创建为 dbo。

所以要创建一个过程我做

创建过程 dbo.myprocname

于 2009-05-18T17:42:40.023 回答