MySQL用戶和權限管理

MySQL用戶和權限管理

權限類別:
    庫級別
    表級別
    字段級別
    管理類
    程序類

    管理類:
        CREATE TEMPORARY TABLES         #創建臨時表,臨時表大概有16M空間
        CREATE USER                     #創建用戶
        FILE                            #創建文件
        SUPER                           #高級別管理操作,例如:複製,權限授權等高級權限
        SHOW DATABASES                  #一般而言授權給所有用戶
        RELOAD                          #重新裝載授權表的
        SHUTDOWN                        #是否擁有進程級別關閉的權限
        REPLICATION SLAVE               #複製的方式連接至服務器端
        REPLICATION CLIENT              #是否有權限去請求複製主數據庫產生的數據的
        LOCK TABLES                     #鎖表權限
        PROCESS                         #進程權限,列出進程列表。

    程序類:
        FUNCTION                        #
        PROCEDURE
        TRIGGER                         #觸發器

        CREATE, ALTER, DROP, EXCUTE(執行)     

    庫和表級別:TABLE or DATABASE
        ALTER               #修改
        CREATE              
        CREATE VIEW
        DROP
        INDEX
        SHOW VIEW
        GRANT OPTION:能夠把自己獲得的權限贈經其他用戶一個副本;

    數據操作:
        SELECT
        INSERT
        DELETE
        UPDATE

    字段級別:  DELETE沒有字段級別的權限
        SELECT(col1,col2,...)
        UPDATE(col1,col2,...)
        INSERT(col1,col2,...)

    所有有限:ALL PRIVILEGES, ALL

    元數據數據庫:mysql 該表中保存了相關的用戶和授權
        授權表:
            db, host, user
            columns_priv, tables_priv, procs_priv, proxies_priv

用戶賬號:
    'USERNAME'@'HOST':
        @'HOST':
            主機名;
            IP地址或Network; 
            通配符:
                %, _: 172.16.%.%

    創建用戶:CREATE USER
        CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY 'password'];

        查看用戶獲得的授權:SHOW GRANTS FOR
            SHOW GRANTS FOR 'USERNAME'@'HOST'

    用戶重命名:RENAME USER
        RENAME USER old_user_name TO new_user_name

    刪除用戶:DROP USER 'USERNAME'@'HOST'

    mysql刷新權限命令:FLUSH PRIVILEGES;

    修改密碼:
        (1) SET PASSWORD FOR
        (2) UPDATE mysql.user SET password=PASSWORD('your_password') WHERE clause;
        (3) mysqladmin password
             mysqladmin [OPTIONS] command command....
                -u, -h, -p

    忘記管理員密碼的解決辦法:
        (1) 啓動mysqld進程時,爲其使用:--skip-grant-tables --skip-networking
        (2) 使用UPDATE命令修改管理員密碼
        (3) 關閉mysqld進程,移除上述兩個選項,重啓mysqld; 

授權:GRANT
    GRANT priv_type[,...] ON [{table|function|procedure}] db.{table|routine} TO 'USERNAME'@'HOST' [IDENTIFIED BY 'password']
        [REQUIRE SSL] [WITH with_option]            
        with_option:
            GRANT OPTION
          | MAX_QUERIES_PER_HOUR count
          | MAX_UPDATES_PER_HOUR count
          | MAX_CONNECTIONS_PER_HOUR count
          | MAX_USER_CONNECTIONS count

取消授權:REVOKE
    REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level FROM user [, user] ...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章