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

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

Добавление прав пользователю [MSSQL]


panov ©   (2004-09-21 22:52:00) 

Создаю БД с единственным пользователем приверно так:

CREATE DATABASE [wgdb]  ON ...
USE [wgdb]
EXEC sp_droprole N'db_wg'
EXEC sp_addlogin 'wg', null, 'wgdb'
EXEC sp_adduser 'wg', 'wg'
EXEC sp_defaultdb 'wg','wgdb'
EXEC sp_addrolemember 'db_wg','wg'
EXEC sp_addrolemember 'db_owner','wg'
GRANT ALL TO [db_wg]
SETUSER 'wg'
...

Далее идут создания таблиц и индексов.
Таблицы создаются, индексы нет.
Как мне назначит полные права пользователю wg?


panov   (2004-09-22 13:11:00) [1]

>Nikolay M. ©   (22.09.04 11:13) [8]

Спасибо-)
То, что ошибка, это точно...
Не зря есть поговорка - утро вечера мудренее.-))


Nikolay M.   (2004-09-22 11:13:00) [2]


> У меня GO было везде, кроме операторов создания индексов.

А я что говорил?


> Syntax error or access violation


> похоже, что ошибка в процедуре

Похоже, похоже...


panov   (2004-09-22 10:58:00) [3]

Прошу прощения, похоже, что ошибка в процедуре, а не в правах доступа...


panov   (2004-09-22 10:30:00) [4]

>Anatoly Podgoretsky ©   (22.09.04 10:08) [5]
На всякий случай поставь в скрипте после каждой строки команду GO

Получилось. У меня GO было везде, кроме операторов создания индексов. Индексы теперь создаются, осталась проблема с последним оператором - создание хранимой процедуры.


Здесь создание базы, таблиц...
...
Далее создание процедуры
CREATE  UNIQUE  INDEX [IX_QuerysQueryDesc] ON [wgQuerys]([QueryDesc]) ON [PRIMARY]
GO
CREATE  UNIQUE  INDEX [IX_ServiceServiceName] ON [wgServices]([ServiceName]) ON [PRIMARY]
GO
CREATE  UNIQUE  INDEX [IX_Users] ON [wgUsers]([idUser]) ON [PRIMARY]
GO
CREATE  INDEX [IX_Users_1] ON [wgUsers]([idUser]) ON [PRIMARY]
GO

CREATE PROCEDURE [wgInsRecTmp]
@IdSess numeric(18,0),
       @IdDate int,
@HHNNSS char(6),
@IP varchar(50),
@idUser int,
@idQuery int,
@idService int,
@SentTo int,
@RecFrom int,
@SentFor int,
@RecFor int,
@Sec int,
@Protocol varchar(10),
@Addr varchar(120),
@Content varchar(1024),
@DateStr char(10)
AS
----------------------
SELECT Count(idDate) AS CountDate FROM wg.wgDates
WHERE Convert(char(10),dateRec,103)=@DateStr
IF CountDate=0 THEN
{
 INSERT INTO wg.wgDates (DateRec) VALUES (DateStr)
}

SELECT idDate as DateId FROM wg.wgDates
WHERE Convert(char(10),dateRec,103)=@DateStr

INSERT INTO tmpWGLogs
(
idSess,idDate,HHNNSS,Ip,idUser,IdQuery,idService,
SentTo,RecFrom,SentFor,RecFor,Sec,Protocol,Addr,Content
)
VALUES
(
@IdSess,
       @DateId,
@HHNNSS,
@IP,
@idUser,
@idQuery,
@idService,
@SentTo,
@RecFrom,
@SentFor,
@RecFor,
@Sec,
@Protocol,
@Addr,
@Content
)
GO


Протокол:

Deleting database file 'e:\MSSQL\data\wgdb_Log.LDF'.
Deleting database file 'e:\mssql\data\wgdb_Data.MDF'.
The CREATE DATABASE process is allocating 1.00 MB on disk 'wgdb_Data'.
The CREATE DATABASE process is allocating 1.00 MB on disk 'wgdb_Log'.
New role added.
Login dropped.
New login created.
Granted database access to 'wg'.
Default database changed.
'wg' added to role 'db_wg'.
'wg' added to role 'db_owner'.
'wg' added to role 'db_datawriter'.
'wg' added to role 'db_datareader'.
[Microsoft][ODBC SQL Server Driver]Syntax error or access violation


Anatoly Podgoretsky   (2004-09-22 10:08:00) [5]

На всякий случай поставь в скрипте после каждой строки команду GO


panov   (2004-09-22 10:06:00) [6]

>KSergey ©   (22.09.04 08:07) [1]
Может это все надо не одним сплошным запросом выполнять?

Сейчас отлаживаю создание базы в isqlw, выполняется скрипт на создание сплошным потоком.
Каждый оператор в скрипте выполняется отдельно, последовательно.


Nikolay M.   (2004-09-22 10:04:00) [7]

Попробуй в разных батчах выполнить. GO в этом поможет. Был тоже как-то косяк с созданием индекса и его использованием в одном батче.


Anatoly Podgoretsky   (2004-09-22 09:06:00) [8]

А отсюда не видно одним это запросом или разным. Сэр Панов молчит как он выполняет это, подозреваю, что через osql


KSergey   (2004-09-22 08:07:00) [9]

Может это все надо не одним сплошным запросом выполнять?


Наверх

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