пользователи и логины в SQL Server 2005 Express

Я создал логин с именем mylogin с паролем = 'pass_1'

Затем я вошел на сервер sql, используя этот логин, и попытался создать базу данных, которая выдала ошибку, что разрешение отклонено.

Затем я выполнил это: sp_addsrvrolemember 'mylogin', 'dbcreator'

Затем я снова вошел на сервер sql, используя указанный выше логин, и попытался создать базу данных, на этот раз база данных была успешно создана.

Это произошло потому, что я добавил роль сервера dbcreator для входа в систему.

Но затем я создал ПОЛЬЗОВАТЕЛЯ myloginuser для LOGIN mylogin , а затем выполнил этот запрос: выполнить как пользователь = 'myloginuser'

затем я снова попытался создать базу данных, но это не удалось. почему так?

когда логин MYLOGIN, с которым связан пользователь MYLOGINUSER, имеет разрешение на создание базы данных, то почему у пользователя нет разрешения? тогда какое решение для этого? Должен ли я предоставлять разрешение пользователю отдельно, независимо от разрешений, предоставленных для входа в систему?

Кроме того, пользователь, созданный для входа в систему, должен быть создан внутри базы данных? это необходимо?


person sqlchild    schedule 24.02.2011    source источник


Ответы (2)


Пользователем по умолчанию для LOGIN [mylogin] был mylogin (который был создан при выполнении

sp_addsrvrolemember 'мой логин', 'dbcreator'

Следовательно, у этого пользователя mylogin было разрешение на создание базы данных. Но вы создали MYLOGINUSER для того же входа. Таким образом, существующий пользователь mylogin был установлен как пользователь-сирота, поэтому вход в систему mylogin сбросил разрешение создателя базы данных.

person Nanda    schedule 24.02.2011
comment
Большое спасибо, сэр, но тогда как мне дать разрешение на создание таблицы для myloginuser? когда я даю его с помощью sp_addsrvrolemember, он говорит, что --login не существует. так что я должен использовать ГРАНТ? - person sqlchild; 24.02.2011
comment
@sqlchild, запустите приведенный ниже скрипт, используя YOUR_DB exec sp_addrolemember 'db_owner', myloginuser - person Nanda; 24.02.2011
comment
сэр, я хочу знать, что в sp_addsrvrolemember нельзя указать имя пользователя? мы должны дать ему имя для входа? потому что, когда я создал пользователя отдельно, а затем попытался предоставить ему роль сервера dbcreator, это выдало ошибку. означает, что если мы хотим, чтобы пользователь был создан с тем же именем, что и при входе в систему, то мы можем использовать sp_addsrvrolemember, потому что он сам создал пользователя, но когда мы отдельно создаем пользователя и затем хотим предоставить ему разрешение, мы не можем используй это. - person sqlchild; 24.02.2011
comment
сэр, не могли бы вы рассказать мне книгу или ссылку, где я мог бы найти полную информацию о схеме, пользователях, ролях, логинах. потому что я запутался со всем этим. запутался с ними. - person sqlchild; 24.02.2011

Установлен ли режим проверки подлинности SQL Server как смешанный вместо Windows? Вам придется установить смешанный режим.

Пользователь должен быть создан на уровне SQL Server и ему должны быть предоставлены разрешения в базе данных (сопоставлены с ней).

person Karel    schedule 24.02.2011
comment
Уважаемый сэр, если бы я выбрал режим Windows, то не смог бы я дать разрешения на новый логин? - person sqlchild; 24.02.2011