mysql數據庫白名單限制(mysql數據庫白名單限制查詢)

本文目錄一覽:

sql server 能不能設置外網訪問白名單?只允許某個ip的機器連接

須提供遠程訪問和1433口打開.

參考2005的.Sql Server 2005的1433端口打開和進行遠程連接

如何打開sql server 2005 的1433端口

配置工具-Sql Server Configuration Manager-MSSQLSERVER的協議

看看TCP/IP協議是否啟動,如果啟動,右鍵菜單點”屬性” ,在分頁菜單中選”IP地址”,把”IP1″和”IP2″中”TCP端口”為1433,

“已啟用”改為”是”

配置工具-Sql Server Configuration Manager-SQL Native Client 配置-客戶端協議-TCP/IP

選擇TCP/IP右鍵菜單中”屬性”,確認”默認端口”是1433,”已啟用”為”是”

SQL Server 2005 遠程連接

配置TCP/IP屬性.

Surface Area Configuration — Database Engine — Remote Connections —Using TCP/IT

SQL Server 外圍應用配置器—服務和連接外圍配置—database englie—遠程連接—啟用(遠程連接的TCP/IP和named pipes)

SQL Server Configuration Manager—SQL2005網絡配置—啟用TCP/IP和named pipes

—————————————————————————————–

一般按如上即可.

其他說明見下:

sqlserver2005(Express版),為了便於管理,你還需要去下一個manage管理器,微軟的官方網站有

下,安裝好manage管理器後,在程序中連接sqlserver2005,下面幾點是要注意的。

1. 開啟sql2005遠程連接功能,開啟辦法如下,

配置工具-sql

server外圍應用配置器-服務和連接的外圍應用配置器-打開MSSQLSERVER節點下的Database Engine

節點,先擇”遠程連接”,接下建議選擇”同時使用TCP/IP和named pipes”,確定後,重啟數據庫服務就可以了.

2.登陸設置改為,Sql server and windows Authentication方式同時選中,具體設置如下:

manage管理器-windows

Authentication(第一次用windows方式進去),-對象資源管理器中選擇你的數據服務器–右鍵屬

性securitySql server and windows Authentication方式同時選中.

3:設置一個Sql server方式的用戶名和密碼,具體設置如下:

manage管理器-windows Authenticationnew querysp_password null,’sa123456′,’sa’

這樣就設置了一個用戶名為sa ,密碼為:sa123456的用戶,下次在登陸時,可以用Sql server方式,

用戶名為sa ,密碼為:sa123456的用戶進數據庫了.

4: 做完上面三步後,這樣寫連接字符串就可以順利進入數據庫了,

(server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master”;

其它版本,做如下設置

程序—Microsoft SQL Server 2005—配置工具—SQL Server 外圍應用配置器—服務和連接的外圍應用配置器—

1、MSSQLserver(實例名)—DataBase Engine—遠程連接—(設置選項)

在下方選項

2、SQL Server Browser—服務(停止時只本機訪問)

3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—網絡連接協議-選擇實例對應協議—啟用(shard memory、Named Pipes、TCP\IP)

注: SQL Server 瀏覽器程序以服務的形式在服務器上運行。SQL Server 瀏覽器偵聽對 Microsoft SQL Server 資源的傳入請求,

並提供計算機上安裝的 SQL Server 實例的相關信息。

SQL Server 瀏覽器可用於執行下列三種操作:

瀏覽可用服務器

連接到正確的服務器實例

連接到專用管理員連接 (DAC) 端點

SQL Server Browser 服務 (sqlbrowser) 為數據庫引擎 和 SSAS 的每個實例提供實例名稱和版本號。

SQL Server 瀏覽器隨 Microsoft SQL Server 2005 一起安裝,

為該計算機上運行的早期版本的 SQL Server(從 Microsoft SQL Server 7.0 開始)提供此服務。

簡述構成mysql權限控制步驟

1、mysql的權限是,從某處來的用戶對某對象的權限。

2、mysql的權限採用白名單策略,指定用戶能做什麼,沒有指定的都不能做。

3、權限校驗分成兩個步驟:

a、能不能連接,檢查從哪裡來,用戶名和密碼,常見錯誤 ERROR 1045 (28000): Access denied for user …

b、能不能執行操作,粒度從粗到細,分別為:mysql.user, mysql.db, msql.tables_priv, mysql.columns_priv, mysql.proc_priv。

需要注意的是,這些表各有分工,但是在權限分配上有一定的重合。

可以這樣理解,mysql 先檢查對大範圍是否有權限,如果沒有再到小範圍里去檢查。比如:先檢查對這個數據庫是否有select權限,如果有,就允許執行。如果沒有,再檢查對錶是否有select權限,一直到最細粒度,也沒有權限,就拒絕執行。舉例來說:要檢查張三能否控制一個團,我只要先檢查張三能否控制一個軍,如果可以,就是有權限,如果不行,再檢查張三能否控制一個師。因此,粒度控制越細,權限校驗的步驟越多,性能越差,需要考慮。

4、mysql服務啟動之後,就會把權限有關的表的數據讀到內存中,對權限做的修改,是否會即時生效?要看情況,手動修改表數據,需要 flush privileges

5、創建用戶 create user,修改密碼 set password,注意 alter user只是設置密碼過期,可以登錄,但是不能執行任何操作,必須從新設置密碼,刪除用戶 drop user

6、host+user 標示唯一的一個用戶,也就是說都叫張三,從不同地方來的張三是兩個用戶,他們有不同的權限。

7、那麼問題來了,表中有兩條記錄:’root’@’192.168.1.101′ 和 ‘root’@’%’, 現在root來登錄,mysql 怎麼匹配呢?認為是哪個root呢?

mysql 對用戶進行了排序,先對host排序,再對user排序,小範圍在前面,大範圍在後面,從上往下匹配。

8、權限授予,grant 權限 on 對象 to 用戶@哪裡來 identified by 密碼

9、收回權限,revoke 權限 on 對象 from 用戶@哪裡來,注意revoke 必須要與grant 對應,也就是說,只能收回授予的權限。

10、那麼問題來了,我授予張三 select的權限,現在revoke all privileges 也不能收回張三select的權限,因為沒有對張三 grant all privileges,怎麼解決這個問題?

使用 revoke all privileges,grant option from user

11、權限級別:從某台主機來的某個用戶,對某個數據庫中某個表的某些列的某部分記錄,是否有權限。

12、全局:對象是mysql服務的所有數據庫,包含服務級的管理權限,比如showdown

13、數據庫:對象是某一個數據庫

14、表:對象是數據庫中某個表

15、列:對象是表中的某個列,比如:grant select (name) on xxx to xxx

16、程序:對象是存儲過程和方法。

17、information_scheme,數據庫和表是存放數據的,那麼誰來存放 數據庫和表這些信息呢? information_scheme 就是記錄數據庫和表的,需要注意的是,infromation_scheme沒有對應的物理文件,它是mysql在內存中維護的。

18、權限設定原則:

a、盡量縮小權限

b、按業務,分離用戶,不同的業務對應不同的用戶

c、避免權限粒度太細,因為mysql權限檢查,會影響性能。

19、文件泄密,linux下mysql客戶端執行的操作記錄在文件 ~/.mysql_history中,輸出重定向/dev/null

20、密碼丟失怎麼辦?

a、mysql啟動,增加選項重置密碼

b、mysql啟動,增加選項不檢查權限,登陸後修改密碼,退出重啟啟動。

navicat設置白名單方法如下:

打開Navicat Premium ,連接》mysql,在“常規”頁面內輸入數據庫IP、用戶名、密碼、端口號,點擊測試

打開Navicat Premium ,連接》mysql,在“SSH”頁面,勾選“使用SSH通道”,內然後輸入數據庫IP、用戶名、密碼、端口號,點擊測試,測試通過後保存密碼。

針對有些數據庫有白名單限制,但如果IP經常浮動的話,會要經常加白名單,但如果知道可以連接數據庫的linux用戶密碼就能通過SSH通道代理來連接數據庫。保存密碼後,這樣就能直接連接數據庫,減省很多麻煩。

MySQL基礎的安全設置包括哪些?

MySQL軟件所提供的權限(mysql.user、mysql.db、mysql.host)

(1) 系統表mysql.user

user權限表中字段分為四類: 用戶字段、權限字段、安全字段和資源控制字段。

用戶字段

用戶字段.png

權限字段

權限字段.png

安全字段

安全字段.png

# 查看是否支持ssl標準show variables like ‘have_openssl’;123

資源控制字段

資源控制.png

系統表mysql.user中的所有資源字段的默認值為0,表示沒有任何限制。

(2) 系統表mysql.db和mysql.host

在系統數據庫mysql中,權限表除了表user外,還有表db和表host,這兩張表都存儲了某個用戶對數據庫的權限。

用戶字段

mysql.db表

mysql.db表.png

mysql.host表

mysql.host表.png

權限字段

權限字段.png

(3)其他權限表

在系統數據庫mysql中,除了上述權限表外,還有表tables_priv和columns_priv,其中標tables_priv用來實現單個表的權限設置,表columns_priv用來實現單個字段列的權限設置。

系統表mysql.tables_priv表結構

mysql.tables_priv表結構.png

mysql.tables_priv表結構.png

系統表mysql.columns_priv的表結構

columns_priv的表結構png

用戶機制

(1) 登錄和退出MySQL軟件的完整命令

# 登錄mysql -h 127.0.0.1 -u root -p# 退出(\q)exit|quit12345

(2) 創建普通用戶賬戶

執行CREATE USER語句來創建用戶賬戶

create user ‘mazaiting’@’localhost’ identified by ‘123456’;12

執行INSERT語句來創建用戶

insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject)values(‘localhost’, ‘linghaoyu’, password(‘linghaoyu’),”,”,”);# 使新建用戶生效flush privileges;12345

執行GRANT語句來創建用戶

grant select on company.t_deptto ‘wangxingqin’@’localhost’ identified by ‘wangxingqin’;123

(3) 利用超級權限用戶root修改用戶賬戶密碼

修改超級權限用戶賬戶密碼

# 通過mysqladmin命令修改root用戶密碼mysqladmin -u root -p password “123456”# 通過SET命令修改密碼set password=password(“123456”);# 更新系統表mysql.user數據記錄修改root用戶密碼update user set password=password(“123456″)where user=”root” and host=”localhost”;12345678

(4) 利用擁有超級權限用戶root修改普通用戶賬戶密碼

# 創建用戶grant select,create,drop on *.*to ‘mazaiting’@’localhost’ identified by ‘mazaiting’with grant option;# 通過grant命令修改用戶密碼grant select,create,drop on *.*to ‘mazaiting’@’localhost’ identified by ‘123456’;# 通過set命令修改用戶密碼set password for ‘mazaiting’@’localhost’=password(“123456”);# 更新系統表mysql.user數據記錄修改用戶密碼update user set password=password(“mazaiting”)where user=’mazaiting’ and host=’localhost’;# 登錄當前用戶,並使用set命令修改密碼set password=password(“123456”);123456789101112131415

(5) 刪除普通用戶賬戶

通過DROP USER語句刪除普通用戶

drop user ‘mazaiting’@’localhost’;12

刪除系統表mysql.user數據記錄實現刪除用戶賬號

# 選擇mysql數據庫use mysql;# 刪除用戶delete from user where user=’mazaiting’ and host=’localhost’;12345

權限管理

(1) 對用戶進行授權

# 創建用戶grant select,create,drop on *.*to ‘mazaiting’@’localhost’ identified by ‘mazaiting’with grant option;# 查詢表數據記錄select host,user,password,select_priv,update_priv,grant_priv,drop_privfrom mysql.userwhere user=’mazaiting’ \G12345678910

(2) 查看用戶所擁有權限

show grants for ‘mazaiting’@’localhost’ \G12

(3) 收回用戶所擁有權限

# 回收用戶的查詢權限revoke select on *.* from ‘mazaiting’@’localhost’;# 回收用戶的全部權限revoke all privileges, grant optionfrom ‘mazaiting’@’localhost

原創文章,作者:0Z4L9,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129182.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
0Z4L9的頭像0Z4L9
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28

發表回復

登錄後才能評論