當前位置:首頁 » 編程語言 » sql修改錯了怎麼辦
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql修改錯了怎麼辦

發布時間: 2022-11-28 15:42:38

sql執行錯誤怎麼辦

  • 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

② 你好,SQL修改錯了,修改前沒有備份,請問怎麼還原到修改前的數據,你知道嗎可以給聯系方式我請教一下

哦,god save you, 業務生產庫動錯的很麻煩啊,你的庫的日誌模式是完整模式嗎full,

以下轉載:
DB2中可以使得資料庫回復到指定的時間點,SQL Server資料庫的Recovery Model為full 或者Bulk 的時候,是可以從日誌來恢復資料庫的。實際上日誌中記錄的一條一條的transact sql語句,恢復資料庫的時候會redo這些sql語句。

前提條件:myBBS是資料庫test中的一個表,

資料庫test的Recovery Model為Full,Auto Close,Auto Shrink兩個選項未選中。

資料庫test的data files和log files均為默認的自動增長狀態。

A:2004/10/13,16:00進行資料庫備份,backup database test to disk='d:\db\1600.bak' with init

B:2004/10/14,13:00對資料庫進行了update,delete等操作;

C:2004/10/15,18:00使用delete mybbs where id>300時,語句誤寫成delete mybbs,因而刪除了表mybbs中的所有數據。

現在在C點,C點對資料庫進行了誤操作,我們希望資料庫能夠恢復到C之前的狀態,比如恢復到10月15日17:59分的狀態。

要恢復資料庫B點,使用的是A點備分的資料庫1600.bak;而使用的日誌備分是最新的備分1820.logs;因而進行如下操作:

--備分日誌:

BACKUP LOG test TO DISK='d:\1820.logs' WITH INIT

--恢復資料庫1600.bak,使用WITH NORECOVERY參數:

RESTORE DATABASE test from disk='d:\db\1640.bak' WITH NORECOVERY

--使用日誌恢復資料庫到10月15日17:59分:

RESTORE LOG test
FROM disk='d:\1820.logs' WITH RECOVERY,STOPAT='10/15/2004 17:59'

上面的三條Transact SQL語句的對應過程:

1.恢復資料庫到A點;

2.執行A-B之間的log記錄,把資料庫恢復到B點.

這樣就恢復資料庫到了指定的時間點。如果恢復不成功,可能的原因是:1.未使用正確的備分資料庫;2.資料庫選項選中了Auto Shrink.

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/davillua/archive/2004/10/16/138999.aspx

③ sql 2005 不小心執行修改事件 怎麼恢復

例1:使用時間戳將日誌進行時點恢復
使用以前的完全備份恢復資料庫,並使其為日誌恢復做好准備。

RESTORE DATABASE pubs FROM DISK = N'C:\Backups\Fullbackup.bak' WITH NORECOVERY

現在您可以將日誌前滾到合適的時間點,並使資料庫可供使用。請注意,STOPAT在資料庫正在執行大容量日誌時禁止執行。

RESTORE LOG pubs FROM DISK=N'C:\Backups\Logbackup.bak' WITH RECOVERY,STOPAT='02/11/2002 17:35:00'

例2:使用資料庫標記將日誌恢復到預定義時間點的語句
在事務日誌中置入一個標記。請注意,被標記的事務至少須提交一個更新,以標記該日誌。

BEGIN TRAN MyMark WITH MARK
UPDATE pubs.dbo.LastLogMark SET MarkTime = GETDATE()
COMMIT TRAN MyMark

按照您常用的方法備份事務日誌。

BACKUP LOG pubs TO DISK='C:\Backups\Fullbackup.bak' WITH INIT

現在您可以將資料庫恢復至日誌標記點。首先恢復資料庫,並使其為接受日誌恢復做好准備。

RESTORE DATABASE pubs FROM DISK=N'C:\Backups\Fullbackup.bak' WITH NORECOVERY

現在將日誌恢復至包含該標記的時間點,並使其可供使用。請注意,STOPAT在資料庫正在執行大容量日誌時禁止執行。

RESTORE LOG pubs FROM DISK=N'C:\Backups\Logbackup.bak' WITH RECOVERY,
STOPAT='02/11/2002 17:35:00'

—Microsoft SQL Server 開發團隊

④ sql恢復修改前數據

1、首先運行Recovery for SQL Server。

⑤ 今天用SQL SERVER修改了批量21W條數據,突然發現自己改錯了,怎樣返回上一步

前提條件
--將資料庫的恢復模式(Recoverymode)設置為「完整(Full)」
--此操作可以在SQLServerManagementStudio中,選擇資料庫,滑鼠右鍵,屬性後,在選項標簽中進行設置。
USE[master]
GO
ALTERDATABASE[test]SETRECOVERYFULLWITHNO_WAIT
GO

--完整備份資料庫
backupdatabasetesttodisk='e: est_20130704.dat'
GO
已為資料庫'test',文件'Test'(位於文件1上)處理了376頁。
已為資料庫'test',文件'Test_log'(位於文件1上)處理了3頁。
BACKUPDATABASE成功處理了379頁,花費1.151秒(2.571MB/秒)。

測試數據.

USE[test]
GO

--創建測試表
CREATETABLEtest_br_table(
IDint,
VALVARCHAR(10),
PRIMARYKEY(ID)
);
GO

INSERTINTOtest_br_tableVALUES(1,'TEST1');
INSERTINTOtest_br_tableVALUES(2,'TEST2');
INSERTINTOtest_br_tableVALUES(3,'TEST3');
GO

SELECTGETDATE()
GO
-----------------------
2013-07-0416:44:12.393
(1行受影響)

--假設誤操作,刪除所有的數據了.
DELETEFROMtest_br_table
GO
(3行受影響)恢復
USE[master]
GO
--步驟1.備份當前資料庫的事務日誌:
BACKUPLOG[Test]TOdisk=N'e: est_log'WITHNORECOVERY
GO
已為資料庫'Test',文件'Test_log'(位於文件1上)處理了9頁。
BACKUPLOG成功處理了9頁,花費0.046秒(1.486MB/秒)。

--步驟2.恢復一個誤刪除之前的完全備份:
RESTOREDATABASE[Test]FROMDISK=N'e: est_20130704.dat'WITHNORECOVERY,REPLACE
GO
已為資料庫'Test',文件'Test'(位於文件1上)處理了376頁。
已為資料庫'Test',文件'Test_log'(位於文件1上)處理了3頁。
RESTOREDATABASE成功處理了379頁,花費0.828秒(3.574MB/秒)。

--步驟3.將資料庫恢復至誤刪除之前的時間點:
RESTORELOG[Test]FROMDISK=N'e: est_log'WITHSTOPAT=N'2013-07-0416:44:12.393',RECOVERY
GO
已為資料庫'Test',文件'Test'(位於文件1上)處理了0頁。
已為資料庫'Test',文件'Test_log'(位於文件1上)處理了9頁。
RESTORELOG成功處理了9頁,花費0.013秒(5.258MB/秒)。

核對數據.
use[Test]
GO

SELECT*FROMtest_br_table
GO
IDVAL
---------------------
1TEST1
2TEST2
3TEST3
(3行受影響)

⑥ sql語句錯誤,怎麼改呀

sql="select
top
2
*
from
Procts
where
"&session("sortID")&"=rs("SortPath"))
and
(ID<>"request.QueryString("ID"))"
,最後加個引號

⑦ SQL 語句錯誤如何修改啊

參考以下方式填寫,ORACLE寫法跟SQL有點區別的
begin
sys.dbms_job.submit(job => :job,
what => 'PRC_T;',
next_date => to_date('06-05-2015 23:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'TRUNC(sysdate) + 1 + 23/(24)');
commit;
end;

⑧ 在sql資料庫,我插入一條數據有誤,編號錯了,和前面的重復,要怎麼修改呢

1.直接去資料庫修改。2.如果能夠單獨查詢出來這條記錄,就用Update去修改,條件就是你查詢時的條件。3。如果不能單獨查詢出來的,可以新添加個欄位,錄入信息來區分,update時以新欄位來做條件,完了後再刪除新欄位。

⑨ 請教高手問題啊,我寫的一段sql語句,但是有錯誤,怎麼改啊,謝謝啊,在線等

你的Employee表中的 Emp_Id同時是db_room和House兩個表的外鍵,也就是說如果你要刪除Employee中的數據,就要先刪除db_room和House中與Emp_ID相關的數據,再刪除Employee中的,後面的Update也是一樣。

如果程序不做修改,你可以在資料庫管理器中將FK__House__Emp_Id__014935CB約束的刪除和更新都設置為級聯。

⑩ 本人不小心將Sqlserver2005某張表中修改了數據,怎麼還原

1、找備份文件還原到另一個資料庫名,然後導出數據來覆蓋或更新。
2、如果沒有備份文件只有回憶一下修改的步驟或修改的內容,看不能不返向操作來處理。如果是刪除那就無法恢復,
3、建議在修改數據前備份資料庫,如果不想備份,可能用 select * into new_table from table 來快速備份。