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

Откуда:
Сообщений: 839
есть скрипт, который создает усеров
    exec ('CREATE LOGIN ['+@Loginame+'] WITH PASSWORD = ''123456'', DEFAULT_DATABASE=['+@DBName+'],  CHECK_POLICY = OFF,  CHECK_EXPIRATION = OFF')
    exec ('CREATE USER ['+@Loginame+'] for login ['+@Loginame+'] WITH DEFAULT_SCHEMA = [dbo]')
    exec ('ALTER ROLE [db_owner] ADD MEMBER ['+@Loginame+']');

и есть скрипт, который делает выборку
select sp.[name] username,
case sp.is_disabled when 1 then cast(0 as bit) else cast(1 as bit) end [Enabled],
blr.id,blr.RegionID,blr.EnableCreateReports,
	 r.Title RegionName
from master.sys.server_principals sp
join Sys_BindLoginsWithRegions blr on blr.LoginID=sp.principal_id
left join Spr_Regions r on r.id=blr.RegionID
where sp.TYPE='S' and sp.default_database_name=DB_NAME()
order by sp.[name]

так вот, sa видит всех, а усер, созданный таким образом видит только dbo и себя. А надо что бы всех. Как победить?
спасибо
27 май 13, 10:56    [14352679]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
ther
Member

Откуда:
Сообщений: 839
и еще, я могу заменить на что то типа
select *,SUSER_ID(name) pid from sys.sysusers

но как тогда получить данный о разрешен/запрещен усере? Не хотелось бы делать дополнительное поле в базе для этого
27 май 13, 10:59    [14352704]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
Glory
Member

Откуда:
Сообщений: 104751
ther
но как тогда получить данный о разрешен/запрещен усере?

Читать раздел Permissions в статье про каждое системное представление
27 май 13, 11:02    [14352728]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ther
    exec ('CREATE LOGIN ['+@Loginame+'] ...')

И снова здравствуй, SQL injection.
Правильно так:
    exec ('CREATE LOGIN '+QUOTENAME(@Loginame)+' ...')
27 май 13, 11:13    [14352836]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
ther
Member

Откуда:
Сообщений: 839
Гость333
спасибо, взял на заметку.
Glory
вот за это я и не люблю форум, вместо ответов постоянно получаешь что то подобное. Я в курсе и без вас, что в справке что то есть. Вопрос был в другом, можно или нет, и если можно, то как? И если я спрашиваю, то у меня нет тонны времени, что бы искать песчинку. Нечего сказать - проходите мимо
27 май 13, 11:39    [14353028]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
Glory
Member

Откуда:
Сообщений: 104751
ther
Вопрос был в другом, можно или нет, и если можно, то как?

Ну так раздел Permissions как раз отвечает на этот вопрос.

ther
если я спрашиваю, то у меня нет тонны времени, что бы искать песчинку.

Офигительно просто. Открыть статью про sys.server_principals и прочитать две строки в Permissions стоит меньше времени, чем вы потратили на написание вашей филиппики
27 май 13, 11:44    [14353085]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ther
есть скрипт, который делает выборку
select sp.[name] username ...
from master.sys.server_principals sp ...

так вот, sa видит всех, а усер, созданный таким образом видит только dbo и себя.

Не очень понял — при выборке из sys.server_principals вы видите логин с именем "dbo"?
27 май 13, 12:05    [14353273]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
ther
Member

Откуда:
Сообщений: 839
Гость333
пардон, sa
Glory
просто если вы в курсе, то проще дать ответ, а не посылать в справку, или пройти мимо. Форум то зачем тогда, если всех в справку посылать?. Я же спрашиваю не как создать таблицу, или как выборку сделать. Это вроде не элементарный вопрос. В любом случае, уже читаю
всем спасибо
27 май 13, 12:13    [14353337]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
Glory
Member

Откуда:
Сообщений: 104751
ther
просто если вы в курсе, то проще дать ответ, а не посылать в справку, или пройти мимо

Ага. На вопрос "Как победить?" скопировать несколько страниц хелпа ?
Чтобы вам бедному не нужно было открывать указанную статью и раздел хелпа ?

ther
Я же спрашиваю не как создать таблицу, или как выборку сделать. Это вроде не элементарный вопрос.

И поэтому в хелпе ничего нет ? Там же только ответы на элементарный вопросы, да ?
27 май 13, 12:17    [14353369]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
ther
Member

Откуда:
Сообщений: 839
use master
GRANT ALTER ANY LOGIN TO [test]

Glory
не обижайтесь, просто у меня(в силу обстоятельств) нет локальной справки, а с msdn чет админы накрутили
и часто он не открывается. Поэтому и спрашиваю
27 май 13, 12:24    [14353414]     Ответить | Цитировать Сообщить модератору
 Re: усеры+sys.server_principals  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ther
use master
GRANT ALTER ANY LOGIN TO [test]

Хм... свежесозданный логин должен только видеть все логины, или вдобавок изменять их тоже?
27 май 13, 12:26    [14353427]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить