اهدای مجوز در سطح اسکیما در اوراکل و پستگرس

در مطلب قبلی سعی کردیم تفاوتهای schema و user را در دیتابیس پستگرس و اوراکل تشریح کنیم. در این مطلب به اهدای مجوز در سطح اسکیما در این دو دیتابیس خواهیم پرداخت.

در دیتابیس پستگرس می توان به راحتی و با اجرای یک دستور مجوز دسترسی به تمامی جداول موجود در یک اسکیما را به کاربران اهدا کرد.مثال زیر را ببینید.

postgres=# \c postgres vahid

postgres=> select current_user;

 vahid

postgres=> select * from myschema.tbl1;

ERROR:  permission denied for schema myschema

خطای فوق عدم دسترسی کاربر vahid به جدول myschema.tbl1 را نشان می دهد. برای برطرف کردن این خطا، از طریق کاربر postgres که superuser هم هست به دیتابیس متصل شده و دستور زیر را اجرا می کنیم:

postgres=> \c postgres postgres

postgres=# grant usage on schema myschema to vahid;

GRANT

postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA myschema TO vahid;

GRANT

(بیشتر…)

user و schema در پستگرس و اوراکل

همانطور که می دانید، user به منظور اتصال و مدیریت دیتابیس ایجاد می شود و schema هم مجموعه ای از objectها نظیر جدول، ایندکس، ویو و … تحت یک نام می باشد در این مطلب تفاوتهای user و schema را در دو دیتابیس پستگرس و اوراکل تشریح خواهیم کرد.

در دیتابیس اوراکل، با ایجاد user، به صورت خودکار schema هم ایجاد خواهد شد و به عبارتی دقیق تر، با ایجاد اولین object برای یک user، به آن user، اسکیما(schema) هم گفته می شود و دستور مجزایی برای ساخت schema وجود ندارد.

البته دستور CREATE SCHEMA که در اوراکل وجود دارد عملا schemaای را ایجاد نخواهد کرد و صرفا امکان ساخت چندین شی را از طریق یک دستور فراهم می سازد برای مثال با توجه به آنکه کاربر usef2 در دیتابیس موجود نیست، دستور زیر با خطا متوقف خواهد شد:

SQL> create schema authorization usef2

create table t1 (c1 number)

create table t2 (c2 number); 

ORA-02421: missing or invalid schema authorization identifier

(بیشتر…)

اوراکل؛پستگرس – نمایش حجم جداول و دیتابیس بصورت Human-Readable

در سیستم عامل لینوکس به همراه دستوراتی که فضای مصرفی فایلها، دایرکتوریها و پارتیشنها را نمایش می دهند (نظیر df و du) می توان از سوییچ h برای نمایش خواناتر خروجی استفاده کرد که کلمه h مخفف عبارت Human-Readable می باشد.

مثال:

[oracle@host ~]$ df

Filesystem            1K-blocks       Used  Available Use% Mounted on

/dev/sda3             543928992  169894132  346381740  33% /

tmpfs                 178257920     351512  177906408   1% /dev/shm

/dev/sda1                499656     144960     318000  32% /boot

 

[oracle@host ~]$ df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             519G  163G  331G  33% /

tmpfs                 170G  344M  170G   1% /dev/shm

/dev/sda1             488M  142M  311M  32% /boot

در محیط دیتابیس هم توابعی وجود دارند که بتوان از طریق آنها حجم مصرفی segmentها و دیتابیس را به صورت خوانا نمایش داد.

(بیشتر…)

پیکربندی Huge Page برای دیتابیس پستگرس

در مطلب “چرا Huge Page” در مورد چرایی و مزیتهای استفاده از Huge Page مطالبی را ارائه کردیم. در این مطلب قصد داریم مطالبی را در مورد نحوه پیکربندی Huge Page برای دیتابیس پستگرس ارائه کنیم.

دیتابیس پستگرس هم همانند دیگر دیتابیسها از Huge Page پشتیبانی می کند و امکان استفاده از این قابلیت در محیط لینوکس از نسخه 9 و 10 وجود دارد و در نسخه 11، پستگرس، علاوه بر محیط لینوکس، Huge Page را در محیط ویندوز هم ساپورت می کند.

(بیشتر…)

نکاتی در مورد جدول dual و فراخوانی توابع در اوراکل و پستگرس

در دیتابیس پستگرس، در زمان فراخوانی توابع به همراه دستور select الزامی به استفاده از کلمه کلیدی from نخواهد بود و انجام این کار، به اشکال زیر قابل انجام است:

شکل اول:

select function_name

شکل دوم:

Select * from function_name

شکل سوم:

select function_name from [table_name,view, …]

(بیشتر…)

بررسی حالتهای shutdown در دیتابیس پستگرس

برای توقف و یا استارت کردن دیتابیس پستگرس از دستور pg_ctl استفاده می شود. فرمت کلی این دستور به صورت زیر می باشد:

pg_ctl start [-w] [-t seconds] [-s] [-D datadir] [-l filename] [-o options] [-p path] [-c]

pg_ctl stop [-W] [-t seconds] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ]

همانطور که در شکل کلی دستور pg_ctl قابل مشاهده است، استارت کردن دیتابیس پستگرس پییچدگی خاصی ندارد و صرفا می توان با اجرای دستور زیر، دیتابیس را استارت نمود:

[postgres@ol7 ~]$ pg_ctl -D /postgres/mydb  start

waiting for server to start….2019-09-04 01:55:24.914 EDT [22529] LOG:  listening on IPv6 address “::1”, port 5432

2019-09-04 01:55:24.914 EDT [22529] LOG:  listening on IPv4 address “127.0.0.1”, port 5432

2019-09-04 01:55:24.917 EDT [22529] LOG:  listening on Unix socket “/tmp/.s.PGSQL.5432”

2019-09-04 01:55:24.932 EDT [22530] LOG:  database system was shut down at 2019-09-04 01:55:21

2019-09-04 01:55:24.936 EDT [22529] LOG:  database system is ready to accept connections

 done

server started

اما برای متوقف کردن دیتابیس پستگرس، سه انتخاب وجود دارد:

smart|fast|immediate

قصد داریم در این متن، به تفاوت هر کدام از این گزینه ها بپردازیم.

(بیشتر…)