2010-12-16 92 views
1

我是Web场的系统管理员,目前我的开发人员可以以系统管理员身份连接到SQL服务器。在SQL 2005中创建自定义服务器角色

现在,我希望他们能够连接到所有数据库的,但只有权限修改数据库架构等,而不是创建新的数据库或更改权限。

有无论如何,我可以创建一个自定义的服务器角色,并配置它有什么权限?

+1

不会将开发组分配给单个数据库吗?当然不是所有的开发者都可以在所有数据库上工作来想一想吧!你为什么让开发人员改变架构:让他们改变脚本,将他们放在SCC中,并将他们交给DBA部署...... – 2010-12-16 08:16:24

+1

问题是,不是这么大的公司,我们的开发团队只有5人,所以他们也改变数据库并开发应用程序。他们需要访问数据库但不能访问完整数据。 – shaharmor 2010-12-16 08:35:21

+0

,你是如何(和他们)解决问题的时候呢?说,星期五下午的变化?我会认为允许Devs创建数据库将不那么严肃,然后允许他们进行更改。但是,嘿,我知道什么...... – 2010-12-16 08:38:42

回答

0

我会把它们放在下面的数据库角色中,因为我不认为有满足您需求的服务器角色。

db_datareader 
db_datawriter 
db_ddladmin 

然后将它们从sysadmin服务器角色中删除。

我想,那么你就可以发出 DENY声明,以防止他们使用 CREATEALTERDROP DATABASE语句。

例如

DENY CREATE DATABASE to UserXYZ

我还没有测试,所以我不是100%肯定,如果这是可能的。

如果你不给他们在master数据库​​许可,那么他们将无法创建任何新的数据库。

+0

因此,我必须遍历所有数据库,并将所有开发人员添加到每个数据库的db_datareader,db_datawriter,db_ddladmin数据库角色? – shaharmor 2010-12-16 09:39:23

+0

我认为这是最好的选择。我假设您的所有开发人员都在单一组中,您也可以分配权限?你可以创建一个脚本来为你完成所有的工作,然后运行你的数据库。 – codingbadger 2010-12-16 09:46:45

+0

我没有使用WINDOWS NT权限,因为服务器是远程服务器,不在我公司的域中。 无论如何创建一个SQL组?并把SQL用户呢? – shaharmor 2010-12-16 09:54:47