我在SQL Server 2005中创建了一个名为“tuser”的用户,其中包含create database rights。 并将master和msdb数据库的'db_owner'数据库角色赋予“tuser”。
当我运行create database的脚本时,从这个用户登录,然后它将创建新的数据库。 但是“tuser”没有访问从脚本生成的新创建的数据库。
任何人都有任何想法?,我想编写脚本,以便“tuser”在创建后可以访问新创建的数据库,并且可以添加新创建的数据库的用户权限。
我想在创建新数据库的同一脚本中将“db_owner”数据库角色赋予新创建的数据库上的“tuser”。该脚本在'tuser'下运行。
答案 0 :(得分:2)
将securityadmin
服务器角色授予[tuser]
securityadmin的成员已修复 服务器角色管理登录及其登录 属性。他们可以授予,拒绝和 REVOKE服务器级权限。他们 也可以GRANT,DENY和REVOKE 数据库级权限。 此外,他们可以重置密码 用于SQL Server登录。
答案 1 :(得分:1)
每个数据库都有一个可以的所有者 在。进行特殊活动 数据库。所有者是用户 创建数据库。数据库 所有者可以通过使用更改 sp_changedbowner(Transact-SQL)。
所以tuser应该已经拥有了数据库。
但是,你可以在模型db中将tuser设置为db_owner,它用作每个数据库创建的模板
顺便说一句,为什么让tuser成为master和msdb的所有者?答案 2 :(得分:1)
如果tuser无法访问新数据库,则表示不是所有者。不能拒绝数据库所有者访问他/她自己的数据库。
SELECT name, SUSER_SNAME(owner_sid) FROM sys.databases;
答案 3 :(得分:0)
感谢您的意见。
我已将用户访问权限从新数据库创建的数据库。 现在问题已经解决了。
非常感谢。