Форум: "Базы";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизДобавление прав пользователю Найти похожие ветки
← →
panov © (2004-09-21 22:52) [0]Создаю БД с единственным пользователем приверно так:
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?
← →
KSergey © (2004-09-22 08:07) [1]Может это все надо не одним сплошным запросом выполнять?
← →
Anatoly Podgoretsky © (2004-09-22 09:06) [2]А отсюда не видно одним это запросом или разным. Сэр Панов молчит как он выполняет это, подозреваю, что через osql
← →
Nikolay M. © (2004-09-22 10:04) [3]Попробуй в разных батчах выполнить. GO в этом поможет. Был тоже как-то косяк с созданием индекса и его использованием в одном батче.
← →
panov © (2004-09-22 10:06) [4]>KSergey © (22.09.04 08:07) [1]
Может это все надо не одним сплошным запросом выполнять?
Сейчас отлаживаю создание базы в isqlw, выполняется скрипт на создание сплошным потоком.
Каждый оператор в скрипте выполняется отдельно, последовательно.
← →
Anatoly Podgoretsky © (2004-09-22 10:08) [5]На всякий случай поставь в скрипте после каждой строки команду GO
← →
panov © (2004-09-22 10:30) [6]>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
← →
panov © (2004-09-22 10:58) [7]Прошу прощения, похоже, что ошибка в процедуре, а не в правах доступа...
← →
Nikolay M. © (2004-09-22 11:13) [8]
> У меня GO было везде, кроме операторов создания индексов.
А я что говорил?
> Syntax error or access violation
> похоже, что ошибка в процедуре
Похоже, похоже...
← →
panov © (2004-09-22 13:11) [9]>Nikolay M. © (22.09.04 11:13) [8]
Спасибо-)
То, что ошибка, это точно...
Не зря есть поговорка - утро вечера мудренее.-))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c