Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программное создание пользователя в 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо