本文目錄一覽:
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-hant/n/129182.html