Потребителят или схема, оракул, статии, програмиране - програмиране С, Delphi, C #
RDBMS Oracle, както и всички вещни неговите конкуренти - старата система. Наскоро отпразнува своята 25-годишнина. Такава дълголетие не би било възможно без редица технически решения успешно (в този изглед) на предложената гърба в старите дни. Но заедно с тази система има и примери за първоначалните недостатъци на дизайна. След като те не изглежда така, и след това да се определи им беше много трудно, така че само в най-новите версии, като деветият стана осезаеми начини за решаване на проблема случайно програмиран. Това е проблемът на "потребители" и "схема".
За възложителя, тези две понятия не са идентични. По този начин, схемата е един вид контейнер съхраняват в обектите на базата данни, извършване традиционната двойна функционално натоварване: като средство за организиране на данни (обекти в партидата, но не всички приложения които ги интересуват) и как защитата на данни от неоторизирани приложения. Потребителят, според първоначалната си идея - този конкретен човек, който може да се свърже с базата данни да се работи с определени данни, проверени за орган следи за сериозни действия, и така нататък ..
Те принадлежат към информационната система, предприятието, а потребителите могат да наемат и огън. Как да се симулира този начин на работа в Oracle?
Може би някой вече е дошъл с неговото решение на този проблем. Ако не - можете да използвате следното.
За съоръжения за съхранение "отдел персонал", за да се създаде схема (-user) HR:
Създаване на потребител часа определени от час;
Освен това, както е необходимо да се уточнят всички свойства на тази схема, като например:
ALTER USER часа DEFAULT таблици hr_ts DEFAULT TABLESPACE температура; и така нататък.
За физически лица създадете потребители на Oracle, например:
Създаване на потребител Pete определени от thisismepete;
Създаване на потребител Мери определени от maryiam;
.
Освен това, потребителите трябва да се припише на необходимите свойства. Обикновено те са едни и същи, така че има смисъл да се напише един скрипт, който дава на всеки нов "Петя" или "Маша" необходимия авторитет. Това, че трябва да бъдат включени. Най-малкото, включващо надбавки, СЪЗДАВАНЕ НА СЕСИЯ. Но освен това, за да получите достъп до техните маси от името на Върховния представител следва да се даде нещо като
Дарение SELECT, INSERT, UPDATE, DELETE ON main_hr_table Пит;
Това не е всичко. Потребителят Пийт наистина сега да е в състояние да се свърже с базата данни от свое име и да работите с MAIN_HR_TABLE маса, обаче, се отнасят към него той ще има пълното име: HR.MAIN_HR_TABLE, тъй като той не е бил негов маса. Мога ли да се избегне това и да го накара да се чувстват "у дома"? Възможна. Достатъчно е да се даде:
ALTER сесия SET CURRENT_SCHEMA = час;
Тя е по-удобно, обаче, този отбор ", увити" в спусъка, когато се свържете към "схема" Пийт, това е, за да се получи, например, от името на SYS:
CREATE OR REPLACE TRIGGER set_hr_schema_for_pete
СЛЕД влизане във pete.SCHEMA
ЗАПОЧНЕТЕ
ИЗПЪЛНЯВАТ непосредствена "ALTER SESSION SET
CURRENT_SCHEMA = час;
END;
/
Сега, свързване към базата данни, потребителят ще види PETE обекти HR "като своя", краткото име, макар и свои собствени таблици, той ще бъде принуден да се обадите на "цялото", например PETE.MY_PETE_TABLE, но ние като че ли, това няма значение.
Характеристики на предложените решения
- необходимо е да се автоматизира
- не е възможно да се създаде и изтриване на обекти
- Можете да използвате одит на системата
Предлага се в Oracle 9.0: "корпоративни потребители" и името на сървъра.