我不是一个DBA,所以不知道任何有关SQL 2005安全设置等。我试图通过从SQL Management Studio生成的脚本生成完整的数据库来设置我们的数据库的空副本。 不幸的是,我不知道有多less选项可以做,而且这个过程的MSFT文档也不是很好。
可以为Schema,Tables,Views和Users生成脚本。 这是我感到困惑的用户,因为我不明白他们如何影响数据库的使用。 我们在团队中有一些开发人员在这个列表中,有些不是,但是每个人都可以在数据库上做任何事情,至less当他们在自己的机器上托pipe时。
我是否需要将这些用户保留在新生成的数据库中?他们做了什么?
我们也有一个dbo用户,他是db_owner,拥有我们的许多模式。 这个dbo用户是什么? 用户拥有模式的意义是什么? 我们使用Schema作为“名称空间”来对我们的数据库中逻辑相关的表进行分组,但是我认为它们比这个更重要吗?
还有一个用户名绑定到这个dbo用户,它是我们的开发人员的Windows NTlogin,但他没有他自己的用户对象在列表中…是否有任何意义呢? 这是坏事吗?
其他用户是guest,INFORMATION_SCHEMA和sys,但我认为这些都是默认值?
对不起,但我是一个SQLpipe理无知,通常把这些东西留在我以前的工作DBA!
谢谢你的帮助。
要设置数据库的克隆,通常您需要复制用户。 SQL Server中的用户允许您分配权限; 例如,可能有一个应用程序使用您的数据库有权读取和修改数据,但不创build或删除表。
您提到的具有无限制访问权限的开发人员可能是通过pipe理员组中的Windows帐户访问SQL Server的。 这在SQL Server中默认映射到sysadmin服务器angular色,这是一个非常有特权的angular色。
dbo,guest,sys和INFORMATION_SCHEMA都是默认帐户。 我不会太担心他们。
您的问题的答案都归结为 – 这些function用于控制数据库中的权限。 你想给用户最less的权限,所以他们不能混淆他们不需要的东西。 在这种最简单的情况下,这意味着开发人员可以完全访问开发数据库,并且每个需要连接的系统或最终用户只需获得他们所需的权限即可获得一个帐户。