Mengatasi Error Access denied; you need (at least one of) the SUPER privilege(s) for this operation pada cPanel

Error Access denied; you need (at least one of) the SUPER privilege(s) for this operation pada saat proses import SQL File sering terjadi apabila didalam file SQL tersebut ada kode untuk Store Procedure, View, Functions, etc. Bagaimana mengatasi hal ini? Apa yang menyebabkan hal ini terjadi, padahal user sudah login dengan user cpanelnya sendiri dan sudah memberikan user privileges pada database yang ingin dibuatkan routine procedure/view/functions? 

Hal mendasar yang perlu diketahui adalah pada saat user login cpanel, membuat database usercpanel_mydb, membuat user usercpanel_myuser dan memberi privileges userdb ke database dengan full privileges yang tersedia di opsi mysql wizard di cpanel bukan berarti user sudah bisa dengan serta merta login ke phpmyadmin, membuka database usercpanel_mydb dan membuat / import routine. Mengapa? Karena saat user membuka phpmyadmin dari cpanel, dan memilih database yang ingin dibuatkan routine, bukan berarti user sudah login memakai/sebagai usercpanel_myuser. Namun user login dengan temporary user dari system cpanel. Hal ini dapat dilihat dalam proses dibawah ini, pembuatan / import store procedure/function/view dari 2 phpmyadmin yang berbeda yakni, login / akses dari dalam cpanel dan akses phpmyadmin yang diinstall diweb(melalui softaculous) sehingga tanpa perlu melakukan login ke cpanel dahulu.

#Membuat Routine Procedure / Function dari PhpMyAdmin dengan login melalui cPanel
  • Buka phpmyadmin, pilih database, kemudian buka menu routine dan klik add new. Isi form routine seperti pada gambar berikut. Kemudian klik go/save.
  • Routine tercreate dengan sukses akan mendapatkan output seperti berikut
  • Ketika kita view routine tersebut akan tampak bahwa definer bukanlah user yang kita setting untuk mengakses kedatabase, melainkan temporary user dari phpmyadmin / session login dari cpanel. Perhatikan bagian yang dikotak merah.
  • Abila kita ingin mengedit /membuat routine tersebut dan membuat definer sesuai user yang kita tetapkan, maka akan mendapat error access denied
  • Silahkan login ke PhpMyAdmin yang diinstall diluar cpanel / ke web (bisa install dari softaculous), misal mydomain.tld/myadmin/ login dengan usercpanel_myuser. kemudian akan mendapati database hanya terlist 1 yakni usercpanel_mydb. Pilih database, kemudian buka menu routine, akan tampil list routine yang sama yang kita lihat jika diakses dari phpmyadmin cpanel. Namun saat kita edit routine yang dibuat dari phpmyadmin cpanel, akan terdapat error seperti gambar dibawah ini dikarenakan routine itu tidak diowned oleh usercpanel_myuser.


    Begitu juga dengan opsi Execute juga tidak ada untuk routine tersebut. Perhatikan kotak merah

#Membuat Routine Procedure / Function dari PhpMyAdmin yang diinstall ke domain/web sendiri
  • Selanjutnya kita akan membuat routine yang sama tetapi melalui PhpMyAdmin yang kita install terpisah ke web (install dari softaculous). Silahkan login ke phpmyadmin, misal url mydomain.tld/myadmin/ memakai user usercpanel_myuser. Create routine yang sama hingga sukses seperti gambar berikut. Perhatikan url phpmyadmin yang diakses berbeda dengan langkah diatas dan tentunya tanpa session cpanel

    Perhatikan opsi Execute pada routine yang baru saja kita buat, opsi itu aktif dan bisa kita akses
  • Jika kita edit, maka akan terlihat definer sesuai dengan user yang kita gunakan untuk login dan user yang kita set privileges untuk mengakses database usercpanel_mydb yakni user usercpanel_myuser
  • Berikut view/edit routine lain yang diimport dari file SQL melalui PhpMyAdmin yang diinstall terpisah
Inti dari penyelesaian ini adalah, kita harus login ke phpmyadmin dengan memakai USER yang akan kita jadikan definer di routine Store Procedure, Function, View atau Trigger.
  • Database, MySQL, Routine, View, Trigger, Procedure, User Privileges
  • 2 Users Found This Useful
Was this answer helpful?

Related Articles

Error Database Connection

Error Database Connection merupakan salah satu error yang paling sering dilihat dihosting...

Enable Remote Database on cPanel

Remote database merupakan salah satu fitur yang diperlukan untuk pengembang aplikasi agar bisa...

Add User and Privileges into a Database(s)

Untuk melakukan add users bisa mengakses menuHome -> Mysql Databases -> MySQL Users ->...

MySQL Database Error: String usernamecpanel_userdb is too long for user name

Dalam pembuatan user database, apabila mendapati error seperti (XID fznx6m) Error from MySQL...

Backup / Export PostgreSQL Database

Untuk melakukan backup database/export database, dapat dilakukan dengan langkah sebagai berikut :...