本文目錄一覽:
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設置白名單方法如下:
打開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-tw/n/129182.html