2010-04-01 5 views
1

Я создал одного пользователя с именем «tuser» с правами создания базы данных на SQL Server 2005. и с учетом роли базы данных master и msdb «db_owner» в «tuser».SQL server 2005 - права пользователя

От этого пользователя, когда я запускаю скрипт для создания базы данных, тогда он создаст новую базу данных. Но у «tuser» нет доступа к недавно созданной базе данных, сгенерированной из скрипта.

У кого-нибудь есть идея ?, Я хочу написать сценарий, чтобы «tuser» имел доступ к этой новой созданной базе данных после создания и мог добавлять пользовательские разрешения только что созданной базы данных.

Я хочу предоставить роли базы данных «db_owner» для «tuser» в этой недавно созданной базе данных в том же скрипте, который создает новую базу данных. Сценарий запускается под «tuser».

ответ

0

Благодарим за ввод.

Я дал доступ к tuser к базе данных из новой созданной базы данных. теперь проблема решена.

Большое спасибо.

2

Grant роль securityadmin сервера [tuser]

Члены роли securityadmin фиксированной сервера управления логины и их свойства. Они могут использовать GRANT, DENY и REVOKE разрешения на уровне сервера. Они могут также предоставлять разрешения на уровне базы данных для GRANT, DENY и REVOKE . Кроме того, они могут сбросить пароли для входа в систему SQL Server.

+0

Я уже дал эту роль. – Paresh

+0

Я хочу предоставить роли базы данных «db_owner» для «tuser» в этой недавно созданной базе данных в том же скрипте, который создает новую базу данных. Сценарий запускается под «tuser». – Paresh

+0

На вашем скрипте после создания БД: 'USE [yourdb] GO CREATE USER [tuser] ДЛЯ LOGIN [tuser] GO EXEC sp_addrolemember N'db_owner ', N'tuser' GO' – Darnell

1

CREATE DATABASE говорит

Каждая база данных имеет владельца, который может выполнять специальные мероприятия в базе данных . Владелец - это пользователь, который создает базу данных. База данных владелец может быть изменен с помощью sp_changedbowner (Transact-SQL).

Так что tuser должен иметь базу данных уже.

Однако, вы можете настроить TUser как db_owner в модели БД, который используется в качестве шаблона для каждого создания БД

BTW, зачем TUser владельца мастера и MSDB?

+0

Я дал доступ к ролям базы данных «db_Owner» для tuser в Model db, даже если он не работает. – Paresh

+0

Он будет работать с db_owner. Это точка db_owner. Какие ошибки вы получаете? – gbn

1

Если tuser не имеет доступа к новой базе данных, это значит, что это не владелец. Владельцу базы данных не может быть отказано в доступе в свою собственную базу данных.

  • Как выглядит оператор CREATE DATABASE? У вас есть какое-либо условие AUTHORIZATION, которое изменит владельца базы данных в новой базе данных?
  • Кто является фактическим владельцем новой базы данных? Проверка SELECT name, SUSER_SNAME(owner_sid) FROM sys.databases;