Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

ORACLE odac   Найти похожие ветки 

 
wqer   (2005-08-02 18:53) [0]

Чем в в одак выполнить скрипт? (типа того, как его выполняет SQLPlus Worksheet)
Например, создание пользователя..
Скрипт верный (из DBA Studio копирован), SQLPlus Worksheet его спокона выполняет.
А вот если коннектится в сессии к oracle с [system,manager] и пытаться выполнить скрипт в OraSQL, то вываливается ошибка..

Повторюсь, скрипт верен..


 
Андрей Жук ©   (2005-08-02 19:03) [1]

Есть OraScript.
Но то, что может выполняться в SQL Plus, не обязательно будет выполняться в ODAC. Там есть служебные команды


 
wqer   (2005-08-02 20:07) [2]

С OraScript такая же ситуация..
Что за служебные команды????????????

вот постейший скрипт..

CREATE USER "U01"  PROFILE "DEFAULT" IDENTIFIED BY "111"
   DEFAULT
   TABLESPACE "SYSTEM" TEMPORARY
   TABLESPACE "SYSTEM" ACCOUNT UNLOCK;
GRANT UNLIMITED TABLESPACE TO "U01"
GRANT "CONNECT" TO "U01";
GRANT "RESOURCE" TO "U01";

???


 
wqer   (2005-08-02 22:59) [3]

???


 
evvcom ©   (2005-08-03 09:13) [4]


> Что за служебные команды????????????

Служебный команды самого SQL Plus не имеющие отношения к SQL или PL/SQL.
Я не зашиваю скрипты в исполняемый файл, делаю через хранимки, но причина скорее всего та же. Вызов хранимки делается в PL/SQL блоке: "begin sp_Bla_Bla(:Param1); end;". Далее, в PL/SQL блоке недопустимо использовать DDL в статическом виде, но допускается в динамическом. Т.е. типа того: "begin execute immediate ""Create user U01 ...""; execute immediate ""Grant ...""; end;" должно прокатить.


 
ANB ©   (2005-08-03 11:32) [5]


> CREATE USER "U01"  PROFILE "DEFAULT" IDENTIFIED BY "111"
>
>    DEFAULT
>    TABLESPACE "SYSTEM" TEMPORARY
>    TABLESPACE "SYSTEM" ACCOUNT UNLOCK;
> GRANT UNLIMITED TABLESPACE TO "U01"
> GRANT "CONNECT" TO "U01";
> GRANT "RESOURCE" TO "U01";


После каждого оператора д.б. ";". Желательно между операторами поставить "/".

И будет счастье. У меня все работает. Но я задрался на асинхронку переводить и написал свой вариант.


 
Sergey13 ©   (2005-08-03 11:48) [6]

Не надо этот скрипт выполнять вообще. 8-)
Делать SYSTEM дефолтным и временным ТС для юзера - это самоубийство. ИМХО.


 
ANB ©   (2005-08-03 12:49) [7]


> Sergey13 ©   (03.08.05 11:48) [6]
- кстати да. Я на логику вообще не смотрел. Хотя если автору так очень хочется . . .


 
wqer   (2005-08-03 21:46) [8]


> - кстати да. Я на логику вообще не смотрел. Хотя если автору
> так очень хочется . . .


Кстати, и автор на нее пока не смотрел..  :)


> ANB ©


Ну не мог бы сюда этот скрипт для user-а дать.. самый простой чтоб по Execute создался пользователь "U01"???
pls


 
ANB ©   (2005-08-04 10:42) [9]

Ну, примерно так :

declare
iCnt number;
vcUserName varchar2(30);
begin
vcUserName := "&UserName";
select count(*) into iCnt from All_Users AU where AU.USERNAME = Upper(vcUserName);
if iCnt > 0 then
 execute immediate "drop user " || vcUserName || " cascade";
end if;
end;
/
create user &UserName identified by NCT&UserName;
/
grant create session to &UserName;
/
grant DBA to &UserName with admin option;
/
grant create any table to &UserName with admin option;
/
grant select any table to &UserName with admin option;
/
grant update any table to &UserName with admin option;
/
grant insert any table to &UserName with admin option;
/
grant delete any table to &UserName with admin option;
/
grant create any procedure to &UserName with admin option;
/
grant execute any procedure to &UserName with admin option;
/


Подправь пароль. И аккуратнее - этот скрипт создает юзера практически с правами SYS. Сруби лишние гранты.


 
Sergey13 ©   (2005-08-04 10:48) [10]

2[9] ANB ©   (04.08.05 10:42)
А нафига другие гранты после
grant DBA to &UserName with admin option;
? 8-)


 
ANB ©   (2005-08-04 10:53) [11]


> Sergey13 ©   (04.08.05 10:48) [10]

Хе, надо было как то поднять юзера для оракл-дизайнера создать. Так меня инсталляшка заколебала требованиями на гранты. Просто DBA права ее не удовлетворяли. Млин. Это все - результат подбора.


 
wqer   (2005-08-04 18:57) [12]

Мдя.. спасибо.. что-то, правда, не проперло.. ошибки на китайском.. не знаю..
Но я для себя нашел способ: консольное создание..

------- howto.bat
copy "amake.sql" "E:\oracle81\bin\amake.sql"
E:\oracle81\bin\sqlplus system/manager @amake

------- amake.sql
connect system/manager
create user "ANTON" identified by "111"
default tablespace users
temporary tablespace temp;
exit

ВСЕ. все просто создается. и что лично мне приятно, скрипт не надо адаптировать..


 
evvcom ©   (2005-08-05 09:43) [13]


> ошибки на китайском

Поставь в реестре HKLM\Software\Oracle\Home0 NLS_LANG="AMERICAN_AMERICA.CL8MSWIN1251" и будут тебе ошибки на родном английском. Это для 9, для 8, наверное, типа того же.


 
ANB ©   (2005-08-05 09:48) [14]


> wqer   (04.08.05 18:57) [12]


> create user "ANTON" identified by "111";
- вот этого вполне достаточно. Тэйблспэйсы по дефолту такими же и будут. А гранты ты давать не собираешься ?


 
Sergey13 ©   (2005-08-05 09:52) [15]

2[14] ANB ©   (05.08.05 09:48)
>> create user "ANTON" identified by "111";
>- вот этого вполне достаточно. Тэйблспэйсы по дефолту такими же и будут.
Это в 9 так? В 8 по дефолту будет SYSTEM, ибо гарантировано может быть только оно.


 
ANB ©   (2005-08-05 10:06) [16]


> Sergey13 ©   (05.08.05 09:52) [15]

Точно, лоханулся я.


 
wqer   (2005-08-05 18:10) [17]


> evvcom ©   (05.08.05 09:43) [13]
> Поставь в реестре HKLM\Software\Oracle\Home0 NLS_LANG="AMERICAN_AMERICA.CL8MSWIN1251"
> и будут тебе ошибки на родном английском. Это для 9, для
> 8, наверное, типа того же.


У меня 8i. И это уже стоит и так.. А ошибки все не на родном.. :)


> > create user "ANTON" identified by "111";
> - вот этого вполне достаточно. Тэйблспэйсы по дефолту такими
> же и будут. А гранты ты давать не собираешься ?

Ну это же так.. для примера.. конечно же собираюсь..


 
wqer   (2005-08-05 18:11) [18]


> Это в 9 так? В 8 по дефолту будет SYSTEM, ибо гарантировано
> может быть только оно.


Угу..


 
EthernalWonderer   (2005-08-05 23:10) [19]


> Sergey13 ©   (04.08.05 10:48) [10]
> 2[9] ANB ©   (04.08.05 10:42)
> А нафига другие гранты после
> grant DBA to &UserName with admin option;


В PL/SQL процедурах
execute immediate "Create table ...";
и аналогичные можно выполнить, только если право на создание таблицы дано непосредственно, а не через роль...



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.037 c
4-1122279591
Валентин
2005-07-25 12:19
2005.09.18
определение последней нажатой клавишы


3-1123229647
Women
2005-08-05 12:14
2005.09.18
Подстановка значения из переменной


14-1124667340
Zer0
2005-08-22 03:35
2005.09.18
Quake 3 Engine Sources GPL ed


1-1124996882
Phantomouse
2005-08-25 23:08
2005.09.18
Альтернатива TWEbBrowser


14-1124788055
dHb
2005-08-23 13:07
2005.09.18
Движок сайта