Текущий архив: 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