SQL Server 2005 - 用户权限

时间:2010-04-01 09:31:26

标签: sql sql-server sql-server-2005 tsql

我在SQL Server 2005中创建了一个名为“tuser”的用户,其中包含create database rights。 并将master和msdb数据库的'db_owner'数据库角色赋予“tuser”。

当我运行create database的脚本时,从这个用户登录,然后它将创建新的数据库。 但是“tuser”没有访问从脚本生成的新创建的数据库。

任何人都有任何想法?,我想编写脚本,以便“tuser”在创建后可以访问新创建的数据库,并且可以添加新创建的数据库的用户权限。

我想在创建新数据库的同一脚本中将“db_owner”数据库角色赋予新创建的数据库上的“tuser”。该脚本在'tuser'下运行。

4 个答案:

答案 0 :(得分:2)

securityadmin服务器角色授予[tuser]

  

securityadmin的成员已修复   服务器角色管理登录及其登录   属性。他们可以授予,拒绝和   REVOKE服务器级权限。他们   也可以GRANT,DENY和REVOKE   数据库级权限。   此外,他们可以重置密码   用于SQL Server登录。

答案 1 :(得分:1)

CREATE DATABASE

  

每个数据库都有一个可以的所有者   在。进行特殊活动   数据库。所有者是用户   创建数据库。数据库   所有者可以通过使用更改   sp_changedbowner(Transact-SQL)。

所以tuser应该已经拥有了数据库。

但是,你可以在模型db中将tuser设置为db_owner,它用作每个数据库创建的模板

顺便说一句,为什么让tuser成为master和msdb的所有者?

答案 2 :(得分:1)

如果tuser无法访问新数据库,则表示不是所有者。不能拒绝数据库所有者访问他/她自己的数据库。

  • CREATE DATABASE语句如何?您是否有任何AUTHORIZATION子句可以更改新数据库的数据库所有权?
  • 谁是新数据库的实际所有者?查看SELECT name, SUSER_SNAME(owner_sid) FROM sys.databases;

答案 3 :(得分:0)

感谢您的意见。

我已将用户访问权限从新数据库创建的数据库。 现在问题已经解决了。

非常感谢。