Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
Здравствуйте!

Подскажите пожалуйста как добавить запросом юзеру доступ к базе данных, на примере этого, только на запросом
http://stackoverflow.com/questions/18468637/powershell-user-mapping-sql-server-2012

--CREATE USER [Username] FOR LOGIN [Domain\Username]
CREATE LOGIN [Username] 
WITH PASSWORD=N'',
DEFAULT_DATABASE=[master], 
DEFAULT_LANGUAGE=[us_english], 
CHECK_EXPIRATION=OFF, 
CHECK_POLICY=ON

ALTER USER [Username] WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember N'db_owner', N'Username'
8 мар 16, 18:14    [18908490]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
что надо-то, отмапить юзера в базу и дать ему роль db_owner?
в вашем коде юзер не создается,
создается логин, а потом одноименному юзеру меняется дефолтная схема
и его в овнеры базы зачисляют
8 мар 16, 18:36    [18908504]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
o-o
что надо-то, отмапить юзера в базу и дать ему роль db_owner?

Да надо это.
8 мар 16, 18:41    [18908515]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
use MyDB;
create user [Username] from login [Username];
EXEC sp_addrolemember N'db_owner', N'Username';
8 мар 16, 18:44    [18908523]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
Ошибку выдает
автор
Msg 15007, Level 16, State 1, Line 18
'Username' is not a valid login or you do not have permission.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 35
User or role 'Username' does not exist in this database.
8 мар 16, 18:46    [18908527]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
Все таки мне нужно создать логин и от мапить его
8 мар 16, 18:46    [18908530]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
значит сперва создайте логин,
у вас же скрипт уже приведен.
или виндовый надо?
или пароль не пропускает пустой?
интересно, кто ж придумал и пароль пустой,
и чтобы полиси его забраковало (CHECK_POLICY=ON)?
8 мар 16, 18:52    [18908548]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
o-o
значит сперва создайте логин,
у вас же скрипт уже приведен.
или виндовый надо?
или пароль не пропускает пустой?
интересно, кто ж придумал и пароль пустой,
и чтобы полиси его забраковало (CHECK_POLICY=ON)?


По идеи нужен доменный. Я пока на локальной машине экспериментирую с не доменным логином.
8 мар 16, 18:53    [18908557]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
тогда
create login [dom\acc] from windows
8 мар 16, 18:55    [18908563]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
o-o
тогда
create login [dom\acc] from windows
Это я умею.

Мне не ясно как мапить определенную базу данных?
USE [master]
GO

CREATE LOGIN [Username] 
WITH PASSWORD=N'',
DEFAULT_DATABASE=[master], 
DEFAULT_LANGUAGE=[us_english], 
CHECK_EXPIRATION=OFF, 
CHECK_POLICY=ON

-- Ведь здесь указана только схема, роль и юзер. А самой базы данных которую надо мапить не указана
ALTER USER [Username] WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember N'db_owner', N'Username'


Вот такую ошибку выдает на этот запрос
USE [master]
ALTER USER [Username] WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember N'db_owner', N'Username'


автор
Msg 15151, Level 16, State 1, Line 9
Cannot alter the user 'Username', because it does not exist or you do not have permission.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 35
User or role 'Username' does not exist in this database.
8 мар 16, 18:59    [18908569]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
вы вообще ответы читаете?
вы снова запускаете скрипт, меняющий схему юзеру
и зачисляющий юзера в овнеры.
а где создание этого юзера?
и зачем это юзера в мастере овнером делать?
вы понимаете, к чему это ему даст доступ?
это все xp даром,
даже xp_cmdshell
8 мар 16, 19:01    [18908581]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
o-o
вы вообще ответы читаете?
вы снова запускаете скрипт, меняющий схему юзеру
и зачисляющий юзера в овнеры.
а где создание этого юзера?
и зачем это юзера в мастере овнером делать?
вы понимаете, к чему это ему даст доступ?
это все xp даром,
даже xp_cmdshell

Вот здесь

К сообщению приложен файл. Размер - 70Kb
8 мар 16, 19:05    [18908592]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
короче.
вот полный скрипт,
только наделаете же вы дел...
 create login Nechto with password = 'Nechto', check_policy = off;
create user Nechto from login Nechto;
exec sp_addrolemember 'db_owner', 'Nechto'

создает скульный логин с указанным паролем, мапит его в мастер и зачисляет в овнеры
8 мар 16, 19:08    [18908601]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
господи.
вы обрисовали красным ЛОГИН.
а создать надо ЮЗЕРА.
это не команда CREATE LOGIN.
это команда CREATE USER.
четвертый пост сверху.
8 мар 16, 19:10    [18908605]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
o-o
Guest
CREATE LOGIN (Transact-SQL)
CREATE USER (Transact-SQL)
читать до полного просветления
8 мар 16, 19:12    [18908615]     Ответить | Цитировать Сообщить модератору
 Re: Создание прав доступа пользователя к базе данных запросом  [new]
Nechto
Member

Откуда:
Сообщений: 829
o-o
короче.
вот полный скрипт,
только наделаете же вы дел...
 create login Nechto with password = 'Nechto', check_policy = off;
create user Nechto from login Nechto;
exec sp_addrolemember 'db_owner', 'Nechto'

создает скульный логин с указанным паролем, мапит его в мастер и зачисляет в овнеры


Отлично то что надо, я просто концепцию немного не до понимал, благодаря вам понял.
USE master
GO

create login Nechto with password = 'Nechto', check_policy = off;
GO

USE [BASE]
GO
create user Nechto from login Nechto;
exec sp_addrolemember 'db_owner', 'Nechto'
GO


Спасибо!
8 мар 16, 19:13    [18908625]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить