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

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

ORACLE odac [D6]


wqer ©   (2005-08-02 18:53:00) 

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

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


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


> 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 ...";
и аналогичные можно выполнить, только если право на создание таблицы дано непосредственно, а не через роль...


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


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


Угу..


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


> 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";
> - вот этого вполне достаточно. Тэйблспэйсы по дефолту такими
> же и будут. А гранты ты давать не собираешься ?

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


ANB   (2005-08-05 10:06:00) [4]


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

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


Sergey13   (2005-08-05 09:52:00) [5]

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


ANB   (2005-08-05 09:48:00) [6]


> wqer   (04.08.05 18:57) [12]


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


evvcom   (2005-08-05 09:43:00) [7]


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

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


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

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

------- 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

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


ANB   (2005-08-04 10:53:00) [9]


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

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


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

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


ANB   (2005-08-04 10:42:00) [11]

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

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. Сруби лишние гранты.


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


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


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


> ANB ©


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


ANB   (2005-08-03 12:49:00) [13]


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


Sergey13   (2005-08-03 11:48:00) [14]

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


ANB   (2005-08-03 11:32:00) [15]


> 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";


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

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


evvcom   (2005-08-03 09:13:00) [16]


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

Служебный команды самого 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;' должно прокатить.


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

???


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

С 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";

???


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

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


Наверх

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