تعديل المستخدم ALTER USER
يُستخدم هذا الأمر للتعديل من خصائص وسماحيات المستخدم، وله الصيغ الآتية (بحسب محركات قواعد البيانات المختلفة):
في محرك البيانات PostgreSQL
ALTER USER {name | CURRENT_USER} [ WITH ] option [ ... ]
إذ إن name هو اسم المستخدم الذي ستطرأ التعديلات عليه، ويمكن أن يكون الخيار option أحد الكلمات المفتاحية الآتية:
| الخيار | مهمته |
|---|---|
SUPERUSER
|
لجعل المستخدم SUPERUSER أي له كافة صلاحيات الوصول access privileges في قاعدة البيانات
|
CREATEDB
|
لإعطاء المستخدم صلاحية إنشاء قاعدة بيانات جديدة |
CREATEROLE
|
لإعطاء المستخدم صلاحية إنشاء مستخدم آخر جديد |
CONNECTION LIMIT connlimit
|
لتحديد عدد من الاتصالات connlimit التزامنية التي يستطيع المستخدم القيام بها مع قاعدة البيانات
|
PASSWORD 'password'
|
لتحديد كلمة المرور password للمستخدم
|
VALID UNTIL 'timestamp'
|
لتحديد مدة صلاحية كلمة المرور لهذا المستخدم حتى التاريخ والتوقيت timestamp، وإن لم يُحدد فهي صالحة دائمًا
|
RENAME to new_name
|
لإعادة تسمية المستخدم باسم جديد new_name
|
أمثلة
لتعديل كلمة المرور للمستخدم Ahmad لتصبح '1751ah'، يستخدم الأمر الآتي:
ALTER USER Ahmad WITH PASSWORD '1751ah';
أو لإزالة كلمة المرور الخاصة به:
ALTER USER Ahmad WITH PASSWORD NULL;
ولإعطائه صلاحية إنشاء قاعدة بيانات جديدة ومستخدمين جدد، يستخدم الأمر الآتي:
ALTER USER Ahmad CREATEROLE CREATEDB;
في محركي البيانات MySQL وOracle
ALTER USER [IF NOT EXISTS] name
[IDENTIFIED BY PASSWORD 'password']
[WITH resource_option]
[password_option]
إذ إن name هو اسم المستخدم الذي ستطرأ التعديلات عليه، ويمكن تعديل أي من خيارات المصادر وخيارات أخرى متعلقة بكلمة المرور، وستُذكر تباعًا.
خيارات المصادر resource_option
| الخيار | مهمته |
|---|---|
| MAX_QUERIES_PER_HOUR count | لتحديد العدد الأقصى للاستعلامات المسموحة خلال الساعة بالعدد count |
| MAX_UPDATES_PER_HOUR count | لتحديد العدد الأقصى للتحديثات (التعديلات) المسموحة خلال الساعة بالعدد count |
| MAX_CONNECTIONS_PER_HOUR count | لتحديد العدد الأقصى للاتصالات المسموحة خلال الساعة بالعدد count |
خيارات كلمة المرور password_option
| مهمته | الخيار |
|---|---|
| لضمان استمرار كلمة المرور لهذا المستخدم بشكل دائم | PASSWORD EXPIRE NEVER
|
لتحديد n يومًا لصلاحية كلمة المرور
|
PASSWORD EXPIRE INTERVAL n DAY
|
أمثلة
لتعديل كلمة المرور للمستخدم Ahmad لتصبح '1751ah' وبصلاحية لمدة 200 يومًا، يستخدم الأمر الآتي:
ALTER USER Ahmad IDENTIFIED BY PASSWORD '1751ah' PASSWORD EXPIRE INTERVAL 180 DAY;
ولإعطائه حدًا أقصى لاستعلاماته خلال الساعة (500 استعلام)، يستخدم الأمر الآتي:
ALTER USER Ahmad WITH MAX_QUERIES_PER_HOUR 500;
في محرك البيانات SQL Server
ALTER USER name
WITH <set_item> ;
إذ إن name هو اسم المستخدم الذي ستطرأ التعديلات عليه و من خلال set_item يمكن تعديل أحد الخصائص الآتية:
| الخاصية | مهمتها |
|---|---|
NAME = newUserName
|
لتعديل اسم المستخدم ليصبح newUserName
|
PASSWORD = 'newpassword'
|
لتعديل كلمة المرور لتصبح 'newpassword'
|
مثال
لتعديل اسم المستخدم Ahmad ليصبح accountant وكلمة مروره لتصبح '1751ah' ، يستخدم الأمر الآتي:
ALTER USER Ahmad NAME = accountant, PASSWORD = '1751ah' ;
التوافقية
| SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
|---|---|---|---|---|
| نعم | لا | نعم | نعم | نعم |