تعديل المستخدم ALTER USER

من موسوعة حسوب
< SQL

يُستخدم هذا الأمر للتعديل من خصائص وسماحيات المستخدم، وله الصيغ الآتية (بحسب محركات قواعد البيانات المختلفة):

في محرك البيانات 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
نعم لا نعم نعم نعم

مصادر