![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное создание пользователя в MSSQL [D7, XP]
Megabyte © (2006-06-08 15:04:00)Подскажите плз синтаксис, если это возможно. Ну и задание прав(grand ...). Знаю, как в Firebird'е. В MSSQL в справке не нашел, метод научного тыка тоже не помог, и на форуме по ключевым словам не нашел. :/
Megabyte (2006-06-10 16:52:00) [1]Спасибо.
Ega23 (2006-06-09 15:35:00) [2]
execsp_addlogin @loginame = 'myuser', @passwd =null, @defdb = 'Enterprise';
execsp_grantdbaccess @loginame = 'myuser';
А GO - убери. Это у меня из спец.скрипта было, который через isql загонялся в БД
Megabyte (2006-06-09 13:14:00) [3]Что-то я туплю, но не могу понять, что не так в синтакстисе. Использую ADOCommand. Оформляю выполнение ХП, как запрос. Пробовал по-разному:
1)sp_addlogin @loginame = 'myuser', @passwd =null, @defdb = 'Enterprise';
go
sp_grantdbaccess @loginame = 'myuser';
go
Пишет: Incorrect syntax near 'go'
2)sp_addlogin @loginame = 'myuser', @passwd =null, @defdb = 'Enterprise';
sp_grantdbaccess @loginame = 'myuser';
Пишет: Incorrect syntax near 'sp_grantdbaccess'
3)sp_addlogin @loginame = 'myuser', @passwd =null, @defdb = 'Enterprise'
go
sp_grantdbaccess @loginame = 'myuser'
Пишет: Incorrect syntax near 'go'
4)sp_addlogin @loginame = 'myuser', @passwd =null, @defdb = 'Enterprise'
union
sp_grantdbaccess @loginame = 'myuser'
1.Как выполнить подобные 2 ХП в одном запросе,если это возможно?
Megabyte (2006-06-08 18:08:00) [4]
> Ega23,
Спасибо ;)
Megabyte (2006-06-08 18:07:00) [5]Разобрался и с правами на таблицу, и с правами на роль. В T-SQL, права на роль не даются через Grant, а добавляется "член", имеющий права на роль, с помощью sp_addrolemember.
MOA (2006-06-08 17:31:00) [6]>Неужели нигде нет списка этих процедур...
В BOL абсолютно полный вариант. Теперь есть русский вариант (внимание - для MSSQL 2005! и немного корявый) - http://www.sql.ru/forum/actualthread.aspx?tid=291358#2646988
Ega23 (2006-06-08 17:27:00) [7]
> Megabyte © (08.06.06 17:06) [4]
Возможно, это в контексте master надо делать...
Вообще почитай в BOL про GRANT
Megabyte (2006-06-08 17:06:00) [8]Если "ParamsGlb" - имя таблицы, то вот мой код:
> if exists (select 1 from sysobjects where name = 'Account'
> and type = 'U')
> GRANT SELECT ON [dbo].[Account] TO 'milk';
Пользователя milk создал. ругается на:
"Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near 'milk'." Синкастис не такой.
з.ы. Неужели нигде нет списка этих процедур...
Ega23 (2006-06-08 16:45:00) [9]
if exists (select 1 from sysobjects where name = 'ParamsGlb' and type = 'U') GRANT SELECT ON [dbo].[ParamsGlb] TO 'Имя_Логина'
Поможет?
Megabyte (2006-06-08 16:41:00) [10]Спасибо. %)
Нашел, что нужно. Пользователя создаю.
Даже методом научного тыка познал, как создать роль. %)
Теперь еще раздачей прав разобраться...
Мне надо одной роли дать права и потом раздавать права на роль пользователям.
Т.е. как: 1) дать права роли, 2) дать юзерам права на роль?
Мб. где есть список данных процедур: в инете, в Enterprise Manager'е?
Ega23 (2006-06-08 15:26:00) [11]Вот, старый скриптик, который базу с нуля создавал.
Посмотри...
use msdb
go
sp_dropuser 'milk'
go
--.. DROP EXISTED SECURITY
USE MILK
execute sp_dropuser 'milk'
go
USE MASTER
go
--.. DROP DB
use master
drop database Milk
go
execute sp_droplogin 'milk'
go
--.. CREATE DB
CREATE DATABASE Milk
ON ( NAME = Milk_dat,
FILENAME = 'E:\MILKDB\Milk.mdf' --was G
)
LOG ON ( NAME = 'Milk_log',
FILENAME = 'E:\MILKDB\Milk_log.ldf'
)
GO
--==SECURITY
--.. CREATE NEW
USE MASTER
go
execute sp_droplogin 'milk'
go
sp_addlogin @loginame = 'milk', @passwd =null, @defdb ='Milk'
go
sp_addsrvrolemember @loginame = 'milk', @rolename ='sysadmin'--sysadmin securityadmin serveradmin setupadmin processadmin diskadmin dbcreator
go
--...
USE MILK
go
sp_grantdbaccess @loginame = 'milk' -- и сразу в базе появился USER
go
USE MSDB
go
sp_grantdbaccess @loginame = 'milk' -- и сразу в базе появился USER
go