多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > mysql學習筆記之十四(安全性機制)

mysql學習筆記之十四(安全性機制)

來源:程序員人生   發布時間:2015-05-28 08:54:25 閱讀次數:3614次
root和普通用戶

權限機制
    mysql系統數據庫
        show databases;
        use mysql;
        show tables;
            +---------------------------+
            | Tables_in_mysql           |
            +---------------------------+
            | columns_priv              |
            | db                        |
            | func                      |
            | help_category             |
            | help_keyword              |
            | help_relation             |
            | help_topic                |
            | host                      |
            | proc                      |
            | procs_priv                |
            | tables_priv               |
            | time_zone                 |
            | time_zone_leap_second     |
            | time_zone_name            |
            | time_zone_transition      |
            | time_zone_transition_type |
            | user                      |
            +---------------------------+
        mysql.user
            +-----------------------+-----------------------------------+------+-----+---------+-------+
            | Field                 | Type                              | Null | Key | Default | Extra |
            +-----------------------+-----------------------------------+------+-----+---------+-------+
            | Host                  | char(60)                          | NO   | PRI |         |       |
            | User                  | char(16)                          | NO   | PRI |         |       |
            | Password              | char(41)                          | NO   |     |         |       |
            | Select_priv           | enum('N','Y')                     | NO   |     | N       |       |
            | Insert_priv           | enum('N','Y')                     | NO   |     | N       |       |
            | Update_priv           | enum('N','Y')                     | NO   |     | N       |       |
            | Delete_priv           | enum('N','Y')                     | NO   |     | N       |       |
            | Create_priv           | enum('N','Y')                     | NO   |     | N       |       |
            | Drop_priv             | enum('N','Y')                     | NO   |     | N       |       |
            | Reload_priv           | enum('N','Y')             | NO   |     | N       |       |重新加載權限表
            | Shutdown_priv         | enum('N','Y')                     | NO   |     | N       |       |
            | Process_priv          | enum('N','Y')             | NO   |     | N       |       |服務器管理
            | File_priv             | enum('N','Y')                     | NO   |     | N       |       |
            | Grant_priv            | enum('N','Y')             | NO   |     | N       |       |Grand Option 數據庫,表,存儲進程函數
            | References_priv       | enum('N','Y')                     | NO   |     | N       |       |
            | Index_priv            | enum('N','Y')                     | NO   |     | N       |       |
            | Alter_priv            | enum('N','Y')                     | NO   |     | N       |       |
            | Show_db_priv          | enum('N','Y')                     | NO   |     | N       |       |
            | Super_priv            | enum('N','Y')                     | NO   |     | N       |       |
            | Create_tmp_table_priv | enum('N','Y')                     | NO   |     | N       |       |
            | Lock_tables_priv      | enum('N','Y')                     | NO   |     | N       |       |
            | Execute_priv          | enum('N','Y')                     | NO   |     | N       |       |
            | Repl_slave_priv       | enum('N','Y')                     | NO   |     | N       |       |
            | Repl_client_priv      | enum('N','Y')                     | NO   |     | N       |       |
            | Create_view_priv      | enum('N','Y')                     | NO   |     | N       |       |
            | Show_view_priv        | enum('N','Y')                     | NO   |     | N       |       |
            | Create_routine_priv   | enum('N','Y')                     | NO   |     | N       |       |
            | Alter_routine_priv    | enum('N','Y')                     | NO   |     | N       |       |
            | Create_user_priv      | enum('N','Y')                     | NO   |     | N       |       |
            | ssl_type              | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |
            | ssl_cipher            | blob                              | NO   |     | NULL    |       |
            | x509_issuer           | blob                              | NO   |     | NULL    |       |
            | x509_subject          | blob                              | NO   |     | NULL    |       |
            | max_questions         | int(11) unsigned                  | NO   |     | 0       |       |
            | max_updates           | int(11) unsigned                  | NO   |     | 0       |       |
            | max_connections       | int(11) unsigned                  | NO   |     | 0       |       |
            | max_user_connections  | int(11) unsigned                  | NO   |     | 0       |       |
            +-----------------------+-----------------------------------+------+-----+---------+-------+    

            Host    主機名
            User    用戶名
            Password

            上述3個字段都驗證成功,才允許用戶登錄

            權限字段,以_priv結尾的字段,決定了用戶權限
                高級權限
                    對用數據庫進行管理
                普通權限    
                    對數據庫操作
            安全字段
                ssl*~x509_su*,主要用來實現加密
                mysql通常不支持ssl標準
                show variables like 'have_openssl'
                上句可以用來查詢是不是支持ssl
                +---------------+----------+
                | Variable_name | Value    |
                +---------------+----------+
                | have_openssl  | DISABLED |
                +---------------+----------+

        mysql.db
            +-----------------------+---------------+------+-----+---------+-------+
            | Field                 | Type          | Null | Key | Default | Extra |
            +-----------------------+---------------+------+-----+---------+-------+
            | Host                  | char(60)      | NO   | PRI |         |       |
            | Db                    | char(64)      | NO   | PRI |         |       |
            | User                  | char(16)      | NO   | PRI |         |       |
            | Select_priv           | enum('N','Y') | NO   |     | N       |       |
            | Insert_priv           | enum('N','Y') | NO   |     | N       |       |
            | Update_priv           | enum('N','Y') | NO   |     | N       |       |
            | Delete_priv           | enum('N','Y') | NO   |     | N       |       |
            | Create_priv           | enum('N','Y') | NO   |     | N       |       |
            | Drop_priv             | enum('N','Y') | NO   |     | N       |       |
            | Grant_priv            | enum('N','Y') | NO   |     | N       |       |
            | References_priv       | enum('N','Y') | NO   |     | N       |       |
            | Index_priv            | enum('N','Y') | NO   |     | N       |       |
            | Alter_priv            | enum('N','Y') | NO   |     | N       |       |
            | Create_tmp_table_priv | enum('N','Y') | NO   |     | N       |       |
            | Lock_tables_priv      | enum('N','Y') | NO   |     | N       |       |
            | Create_view_priv      | enum('N','Y') | NO   |     | N       |       |
            | Show_view_priv        | enum('N','Y') | NO   |     | N       |       |
            | Create_routine_priv   | enum('N','Y') | NO   |     | N       |       |
            | Alter_routine_priv    | enum('N','Y') | NO   |     | N       |       |
            | Execute_priv          | enum('N','Y') | NO   |     | N       |       |
            +-----------------------+---------------+------+-----+---------+-------+

            用戶字段
                Host,User,Db
            權限字段
                形如*_priv
        mysql.host
            +-----------------------+---------------+------+-----+---------+-------+
            | Field                 | Type          | Null | Key | Default | Extra |
            +-----------------------+---------------+------+-----+---------+-------+
            | Host                  | char(60)      | NO   | PRI |         |       |
            | Db                    | char(64)      | NO   | PRI |         |       |
            | Select_priv           | enum('N','Y') | NO   |     | N       |       |
            | Insert_priv           | enum('N','Y') | NO   |     | N       |       |
            | Update_priv           | enum('N','Y') | NO   |     | N       |       |
            | Delete_priv           | enum('N','Y') | NO   |     | N       |       |
            | Create_priv           | enum('N','Y') | NO   |     | N       |       |
            | Drop_priv             | enum('N','Y') | NO   |     | N       |       |
            | Grant_priv            | enum('N','Y') | NO   |     | N       |       |
            | References_priv       | enum('N','Y') | NO   |     | N       |       |
            | Index_priv            | enum('N','Y') | NO   |     | N       |       |
            | Alter_priv            | enum('N','Y') | NO   |     | N       |       |
            | Create_tmp_table_priv | enum('N','Y') | NO   |     | N       |       |
            | Lock_tables_priv      | enum('N','Y') | NO   |     | N       |       |
            | Create_view_priv      | enum('N','Y') | NO   |     | N       |       |
            | Show_view_priv        | enum('N','Y') | NO   |     | N       |       |
            | Create_routine_priv   | enum('N','Y') | NO   |     | N       |       |
            | Alter_routine_priv    | enum('N','Y') | NO   |     | N       |       |
            | Execute_priv          | enum('N','Y') | NO   |     | N       |       |
            +-----------------------+---------------+------+-----+---------+-------+

            用戶字段
                Host,Db
            權限字段
        其他權限表
            tables_priv
                對單表進行權限設置   
                *************************** 1. row ***************************
                  Field: Host
                   Type: char(60)
                   Null: NO
                    Key: PRI
                Default:
                  Extra:
                *************************** 2. row ***************************
                  Field: Db
                   Type: char(64)
                   Null: NO
                    Key: PRI
                Default:
                  Extra:
                *************************** 3. row ***************************
                  Field: User
                   Type: char(16)
                   Null: NO
                    Key: PRI
                Default:
                  Extra:
                *************************** 4. row ***************************
                  Field: Table_name
                   Type: char(64)
                   Null: NO
                    Key: PRI
                Default:
                  Extra:
                *************************** 5. row ***************************
                  Field: Grantor
                   Type: char(77)
                   Null: NO
                    Key: MUL
                Default:
                  Extra:
                *************************** 6. row ***************************
                  Field: Timestamp
                   Type: timestamp
                   Null: NO
                    Key:
                Default: CURRENT_TIMESTAMP
                  Extra:
                *************************** 7. row ***************************
                  Field: Table_priv
                   Type: set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view')
                   Null: NO
                    Key:
                Default:
                  Extra:
                *************************** 8. row ***************************
                  Field: Column_priv
                   Type: set('Select','Insert','Update','References')
                   Null: NO
                    Key:
                Default:
                  Extra:        
            columns_priv
                對單列進行權限設置
                +-------------+----------------------------------------------+------+-----+-------------------+-------+
                | Field       | Type                                         | Null | Key | Default           | Extra |
                +-------------+----------------------------------------------+------+-----+-------------------+-------+
                | Host        | char(60)                                     | NO   | PRI |                   |       |
                | Db          | char(64)                                     | NO   | PRI |                   |       |
                | User        | char(16)                                     | NO   | PRI |                   |       |
                | Table_name  | char(64)                                     | NO   | PRI |                   |       |
                | Column_name | char(64)                                     | NO   | PRI |                   |       |
                | Timestamp   | timestamp                                    | NO   |     | CURRENT_TIMESTAMP |       |
                | Column_priv | set('Select','Insert','Update','References') | NO   |     |                   |       |
                +-------------+----------------------------------------------+------+-----+-------------------+-------+
            procs_priv
                系統表
                +--------------+----------------------------------------+------+-----+-------------------+-------+
                | Field        | Type                                   | Null | Key | Default           | Extra |
                +--------------+----------------------------------------+------+-----+-------------------+-------+
                | Host         | char(60)                               | NO   | PRI |                   |       |
                | Db           | char(64)                               | NO   | PRI |                   |       |
                | User         | char(16)                               | NO   | PRI |                   |       |
                | Routine_name | char(64)                               | NO   | PRI |                   |       |
                | Routine_type | enum('FUNCTION','PROCEDURE')           | NO   | PRI | NULL              |       |
                | Grantor      | char(77)                               | NO   | MUL |                   |       |
                | Proc_priv    | set('Execute','Alter Routine','Grant') | NO   |     |                   |       |
                | Timestamp    | timestamp                              | NO   |     | CURRENT_TIMESTAMP |       |
                +--------------+----------------------------------------+------+-----+-------------------+-------+


用戶機制

    用戶管理機制包括登陸退出mysql,創建用戶,修改用戶密碼,刪除用戶,為用戶賦予權限

    1、登陸或退出mysql

        mysql -h hostname|hostIP -p port -u username -pPassword DatabaseName -e "SQL語句"     
        登陸數據庫服務器,如果直接接密碼,則密碼password直接寫在-p以后,中間不能有空格

        mysql -u root -p 
        登陸本地的數據庫,則隱藏輸入密碼

        exit|quit:退出數據庫

    2、創建普通用戶
        root用戶的權限太大,應當嚴格杜絕使用root登陸mysql
        (a)create user
            create user username [identifield by [password] 'password']
                [,username [identifield by [password] 'password']]
                ....
            password關鍵字主要用來對密碼進行加密

            create user qionghua identified by '123456';

        (b)insert
            mysql.user存儲了關于用戶賬戶的信息
            insert into user(host,user,password) values('hostname','username',password('password'));
            在具體創建用戶賬戶時,由于表user中字段ssl_cipher,x509_issuer,x509_subject沒有默許值,所以還需要設置這些字段的值,對password字段,1定要使用函數PASSWORD()進行加密   
            創建用戶成功后如果不能登陸,使用
                flush privileges
            刷新下權限
        (c)grant
            上述兩種創建用戶的方式不方便給用戶賦予權限
            grant priv_type on databasename.tablename
                to username[identified by [password]'password']
                   [,username[identified by [password]'password']]  
                   [,username[identified by [password]'password']]
                    ....
    2、修改用戶密碼

        兩種方式:通過超級權限用戶root和通過普通用戶

        root用戶密碼修改
            1、mysqladmin
                修改root用戶密碼
                    mysqladmin -u username -p oldpassword "new_password"
            2、set
                登陸mysql服務器后,可以通過set命令修改root用戶密碼
                set password=password('new password')
            3、更改系統表mysql.user數據記錄修改
                update user set password=password('new_password') 
                    where user='root' and host='localhost'
        普通用戶密碼修改
            1、仿照創建用戶時的grant方式
                grant priv_type on databasename.tablename
                    to username[identified by [password]'password']
            2、set命令
                通過root賬號登陸mysql后使用set命令
                set password for 'username'@'hostname'=password("newpassword")

                通過普通賬戶登陸mysql后使用set命令修改自己的密碼
                set password=password("new_password")
            3、更改系統表mysql.user
                update user set password=password("password") where user='username' and host="localhost"
                如果沒有設置主機,則不需要匹配host="localhost"

    3、刪除普通用戶賬戶
        1、drop user
            drop user user1[,usre2,...] 
        2、刪除系統表mysql.user數據記錄
            delete from user where user="username" and host="hostname"  
權限管理
    授權權限
        在進行授權操作之前,需要用戶具有grant權限
        grant priv_type[(column_list)] on databasename.tablename
            to user [identified by [password] "password"]
            [,user [identified by [password] "password"]]
            ...
            [with with_option[with_option]....]
        with_option的取值
            grant option
            max_queries_per_hour count
            max_update_per_hour count
            max_connections_per_hour count
            max_user_connections count 單個用戶可以同時具有count個連接

    查看權限
        1、查看系統表mysql.user的數據記錄
            grant select,update,create,drop on *.* to 'qionghua';
            select * from mysql.user where user='qionghua'G
            *************************** 1. row ***************************
                 Host: %
                 User: qionghua
                 Password: *00A51F3F48415C7D4E8908980D443C29C69B60C9
              Select_priv: Y
              Insert_priv: N
              Update_priv: Y
              Delete_priv: N
              Create_priv: Y
                Drop_priv: Y
            ........
            后面為N的字段省略。
            同這個查詢,可以看出該用戶所具有的權限
    收回權限
        revoke priv_type[(column_list)] on databasename.tablename
            from user1 [identified by [password] "password"]
            [,user2 [identified by [password] "password"]]
            ...
            [with with_option[with_option]....]
        收回全部權限
            revoke all privilege,grant option
            from user1 [identified by [password] "password"]
            [,user2 [identified by [password] "password"]]
            ...
        mysql> show grants for "qionghua"G
        *************************** 1. row ***************************
        Grants for qionghua@%: GRANT SELECT, UPDATE, CREATE, DROP ON *.* TO 'qionghua'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74
        329105EE4568DDA7DC67ED2CA2AD9'
        1 row in set (0.00 sec)

        mysql> revoke select on *.* from "qionghua";
        Query OK, 0 rows affected (0.00 sec)

        mysql> show grants for "qionghua"G
        *************************** 1. row ***************************
        Grants for qionghua@%: GRANT UPDATE, CREATE, DROP ON *.* TO 'qionghua'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE
        4568DDA7DC67ED2CA2AD9'
        1 row in set (0.00 sec)
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 高清午夜线观看免费 | 国产精品免费小视频 | 综合欧美日韩一区二区三区 | 亚洲图片欧美文学小说激情 | 亚洲综合一二三区 | 免费一级做a爰片久久毛片潮喷 | 亚洲一级毛片免费在线观看 | 在线观看视频播放 | 看一级毛片免费观看视频 | 黄色毛片播放 | 91精品欧美一区二区综合在线 | 日本午夜小视频 | 国产区一区 | 国产精品第44页 | 91情国产l精品国产亚洲区 | 欧美精品v | 国产一二三区精品 | 亚洲成人在线网站 | 国产精品日韩 | 麻豆 一区 精品 在线 | 日韩精品欧美国产精品亚 | 色网站在线 | 欧美另类videovideosex | 久久国产一级毛片一区二区 | 91亚洲欧美综合高清在线 | 国产成人亚洲精品 | 亚洲精品一区二区三区网址 | 武则天级淫片a级中文 | 免费亚洲一区 | 国产精品嫩草免费视频 | 免费看一级毛片欧美 | 欧美一级毛片欧美毛片视频 | 亚洲国产一区二区在线 | 国产精品久久久视频 | 中国free性护士xxxxhd | 精品无码久久久久久久动漫 | 插丝袜美女 | 久久麻豆亚洲精品 | 欧美成人一区二区三区不卡视频 | 亚洲 自拍 另类 欧美 综合 | 超刺激福利丝袜网站 |