Showing posts with label MySQL Private Column. Show all posts
Showing posts with label MySQL Private Column. Show all posts

Friday, 13 October 2023

MySQL Hide Column

A MySQL private column is a column in a table that is not visible to users who do not have the appropriate privileges. This can be useful for storing sensitive data, such as passwords or credit card numbers.

To create a private column, you can use the INVISIBLE keyword in the column definition. For example, the following statement creates a private column named password in the users table:

SQL
CREATE TABLE users (
  id INT NOT NULL AUTO_INCREMENT,
  username VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL INVISIBLE,
  PRIMARY KEY (id)
);

Once you have created a private column, you can only access it using the SELECT, INSERT, UPDATE, and DELETE statements with the SUPER privilege.

For example, the following statement inserts a new record into the users table with the password "mypassword":

SQL
INSERT INTO users (username, password) VALUES ('johndoe', 'mypassword');

The password column is not visible to users who do not have the SUPER privilege. For example, the following statement will return a NULL value for the password column:

SQL
SELECT * FROM users WHERE username = 'johndoe';

To view the password column, you must use the SELECT statement with the SUPER privilege. For example, the following statement will return the password value for the user "johndoe":

SQL
SELECT * FROM users WHERE username = 'johndoe' AND SUPER = 1;

MySQL private columns can be a useful way to protect sensitive data from unauthorized access. However, it is important to note that private columns are not completely secure. If a user has access to the database files, they may be able to view the private columns.

Here are some additional tips for using MySQL private columns:

  • Only store sensitive data in private columns.
  • Make sure that only users who need to access the private columns have the SUPER privilege.
  • Keep your database files secure.
  • Change your private column passwords regularly.

I hope this information is helpful.