Lập trình T - SQL và các quản lý bảo mật

12 829 7
Tài liệu đã được kiểm tra trùng lặp
Lập trình T - SQL và các quản lý bảo mật

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lập trình T - SQL và các quản lý bảo mật

Phần 8 Lập trình T-SQL , Các giao dịch & Quản bảo mật (Thực hành)Mục tiêu bài học:Cuối bài học này các bạn có thể: Viết các câu lệnh T-SQL để thi hành các kiểu giao dịch khác nhau Định nghĩa sử dụng các biến cục bộ biến toàn cục Tạo lập các đăng nhập người dùng Các bước đưa ra trong chương này rất chi tiết, toàn diện tỷ mỉ. Các phần thực hành được bám sát theo mục tiêu của bài học giúp chúng ta hiểu sử dụng các công cụ một cách trọn vẹn. Bạn hãy thực hành cẩn thận theo từng bước dưới đây.Phần I: Hướng dẫn học Thời gian: 30 phútPhần thực hành này được kết hợp với 3 chương thuyết trước. Bởi vì các bài tập các phần hướng dẫn thực hành sẽ bao gồm tất cả các khái niệm các kỹ năng đã được giới thiệu trong các chương này. Mục tiêu của buổi thực hành này để giúp sinh viên hiểu về các câu lệnh T-SQL, cách sử dụng các biến toàn cục & cục bộ các hàm thư viện. Các ví dụ các bài tập trong phần thực hành này sẽ tập trung vào những chủ đề này. Chúng ta sẽ sử dụng CSDL NorthWind cho các ví dụ của chúng ta.8.1 Các giao dịchGiao dịch là một nhóm các thao tác của SQL Server kết hợp lại thành một nhóm đơn lẻ công việc. Có các kiểu giao dịch sau đây:  Các giao dịch ngầm định Các giao dịch tường minh Các giao dịch tự động xác nhận lệnh (Auto-commit)8.1.2 Các giao dịch ngầm địnhKhi một kết nối đang làm việc trong chế độ giao dịch ngầm định, SQL Server tự động khởi động một giao dịch mới sau giao dịch hiện hành đã được xác nhận (committed) hoặc hủy bỏ (rolled back). Chế độ giao dịch ngầm định sinh ra một chuỗi các giao dịch.1. Mở Query Analyzer.2. Thực hiện lệnh sau:CREATE TABLE A (COL1 INT, COL2 CHAR(1))SET IMPLICIT_TRANSACTIONS ON INSERT INTO A VALUES (1,'A') INSERT INTO A VALUES (2,'B') SELECT COUNT(*) FROM A COMMIT TRANSACTION INSERT INTO A VALUES (3,'C') SELECT COUNT(*) FROM ALập trình T-SQL , Các giao dịch & Quản bảo mật 108 COMMIT TRANSACTIONSET IMPLICIT_TRANSACTIONS OFFGiao dịch ngầm định trên sẽ tạo lập một bảng chèn giá trị vào bảng. Giao dịch ngầm định thực hiện một chuỗi các giao dịch. Vì vậy, tất cả các giao dịch được thực hiện từng bước một trừ khi giao tác ngầm định được thiết lập là off. Lệnh SET được sử dụng để định cấu hình cấp độ phiên giao dịch cài đặt trong SQL Server.Kết quả của truy vấn được hiển thị trong hình 8.Hình 8.1: Các giao dịch ngầm định8.1.2 Các giao dịch tường minhGiao dịch tường minh là một giao dịch chúng ta định nghĩa bằng sự bắt đầu kết thúc của giao dịch. Giao dịch tường minh còn được gọi là các giao dịch người sử dụng định nghĩa.BEGIN TRANSACTION, COMMIT TRANSACTION ROLLBACK TRANSACTION là các câu lệnh được sử dụng để định nghĩa các giao tác tường minh.Sử dụng BEGIN COMMIT TRANSACTIONCâu lệnh BEGIN TRANSACTION đánh dấu điểm bắt đầu của một giao tác. COMMIT TRANSACTION đánh dấu kết thúc giao tác Chúng ta hãy tăng giá trị UnitPrice trong bảng Products bằng 15 với điều kiện CategoryID bằng 1. 1. Thực hiện các lệnh dưới đâyLập trình T-SQL , Các giao dịch & Quản bảo mật 109 BEGIN TRAN Tran2 SELECT productid,productname FROM Products UPDATE Products SET UnitPrice=UnitPrice+15 WHERE CategoryID = 1 COMMIT TRANKết quả của truy vấn được hiển thị như hình 8.2Hình 8.2: Các giao dịch tường minhSử dụng Rollback TransactionROLLBACK TRANSACTION đưa giao dịch về điểm bắt đầu của giao dịch hoặc một điểm định rõ trước đó.1. Thực hiện lệnh sau đây. BEGIN TRAN TRAN3 SELECT PRODUCTID,PRODUCTNAME FROM PRODUCTS WHERE UNITPRICE=16 UPDATE PRODUCTS SET UNITPRICE=UNITPRICE+14 WHERE UNITPRICE=14 IF @@ROWCOUNT>0 BEGIN SELECT UNITPRICE FROM PRODUCTS WHERE UNITPRICE = 30 PRINT 'TRANSACTION IS ROLLED BACK' ROLLBACK TRANLập trình T-SQL , Các giao dịch & Quản bảo mật 110 END SELECT UNITPRICE FROM PRODUCTS WHERE UNITPRICE=30Kết quả của truy vấn được hiển thị như hình 8.3.Hình 8.3: Hủy bỏ giao dịch8.1.4 Giao dịch AutocommitGiao dịch Autocommit là giao dịch ngầm định. SQL server thực hiện theo chế độ tự động xác nhận bất kể chế độ mặc định này là giao dịch ngầm định hoặc tường minh.SQL Server thực hiện trong chế độ tự động xác nhận (autocommit) tới khi BEGIN TRANSACTION của giao dịch ngầm định hoặc tường minh được thiết lập là ON. Khi giao dịch ngầm định hoặc tường minh thiết lập là OFF, SQL quay trở lại cơ chế autocommit.1. Thực hiện lệnh dưới đây.CREATE TABLE AI (Colmna INT PRIMARY KEY, Colmnb CHAR (3))INSERT INTO AI VALUES (1, 'aaa')INSERT INTO AI VALUSE (2, 'bbb')Note: Giao dịch trên là giao dịch autocommit từ khi BEGIN TRANSACTION không được thiết lập là ON. Giao dịch trên được xác nhận nếu không có lỗi nào xảy ra ngược lại thì quay lại điểm bắt đầu (rolled back.) Lập trình T-SQL , Các giao dịch & Quản bảo mật 111 Kết quả của truy vấn hiển thị như hình 8.4.Hình 8.4: Giao dịch AutocommitChú ý: Giao dịch trên được hủy bỏ khi có lỗi cú pháp. Do đó, các giá trị không được chèn vào bảng.8.2 Các biến cục bộ biến toàn cụcMột biến là một đối tượng mà nó có thể lưu trữ dữ liệu. Chúng ta có thể sử dụng các biến cục bộ để lưu trữ dữ liệu trong các câu lệnh SQLVí dụ, hãy gán một giá trị cho biến được khai báo trước đó.SET @Contact = 'Sales Manager'SELECT * FROM CustomersWHERE contacttitle = @contactKết quả của khối lệnh SQL được hiển thị như hình 8.5.Lập trình T-SQL , Các giao dịch & Quản bảo mật 112 Hình 8.5: Sử dụng các biến cục bộSQL Server cũng duy trì một số biến toàn cục hệ thống để lưu trữ thông tin của CSDL. Các biến này có các tiền tố @@. Chúng ta có thể nhận giá trị của các biến này bằng cách gọi chúng trong câu lệnh SELECT. Cú phápSELECT <Variable Name>Ví dụ:SELECT @@VersionBiến @@version trả về thông tin phiên bản của SQL Server giống như hình 8.6.Hình 8.6: Sử dụng các biến toàn cụcLập trình T-SQL , Các giao dịch & Quản bảo mật 113 Các biến hệ thống được liệt kê trong bảng 8.1. Thực hiện chúng trong Query Analyzer.Biến toàn cục hệ thống Kết quả@@Trancount Các giao dịch hiện tại đã kết nối@@Servername Tên máy chủ cục bộ@@Rowcount Số lượng các bản ghi bị tác động bởi câu lện SQL sau cùng@@Nestlevel Mức độ lồng nhau của thủ tục lưu trữ hiện tại@@Language Tên ngôn ngữ@@Servicename Tên dịch vụ SQL Server trên máy tính hiện tại@@Procid ID của thủ tục lưu trữ @@Connections Số lượng các kết nối được thiết lập với máy chủ từ khi nó khởi động.@@Fetch_Status Trạng thái của thao dịch FETCH. Trả về 0 nếu nó thành công, -1/-2 nếu nó không thành côngBảng 8.18.3 Bảo mật SQL Server 8.3.1 Tạo lập các đăng nhập sử dụng Enterprise Manager1. Chọn Wizards trên thanh menu Tools.2. Trong hộp thoại Select Wizard, mở rộng mục Database (bấm vào dấu cộng).Hình 8.7 hiển thị hộp thoại Select Wizard.Lập trình T-SQL , Các giao dịch & Quản bảo mật 114 Hình 8.7: Lựa chọn Create Login Wizard3. Nhấn đúp chuột vào Create Login Wizard.4. Hoàn tất các bước trong wizard.Lập trình T-SQL , Các giao dịch & Quản bảo mật 115 Hình 8.8: Tạo lập đăng nhập (Login Wizard)Chúng ta có thể sử dụng thủ tục lưu trữ sp_addlogin để tạo lập các đăng nhập.Để tạo lập một đăng nhập với một CSDL mặc định, chúng ta có thể sử dụng câu lệnh sauEXEC sp_addlogin 'Jade', 'stones', 'jewellery'Phần II Luyện tập Thời gian :1 giờ 30 phút1. Sử dụng một biến để chứa tên sản phẩm ‘Konbu’ thực hiện một truy vấn trên bảng Sản phẩm (Products) để lấy các bản ghi liên quan đến sản phẩm đó.2. Sử dụng một biến để lưu trữ tiêu đề liên lạc như ‘Owner’ thực hiện truy vấn trên bảng Khách hàng (Customers) để lấy các bản ghi liên quan của khách hàng đó.3. Hiển thị tất cả tên sản phẩm bằng chữ thường.4. Viết một truy vấn để hiển thị ngày của tuần, ngày của năm, năm, một phần tư của năm, giờ của ngày.5. Viết một truy vấn để hiển thị ngày sau 25 ngày kể từ ngày hệ thống hiện tại.6. Viết một câu lệnh T-SQL để hiển thị giá trị định danh tiếp theo (IDENTITY value).7. Tạo lập một tên đăng nhập tên người dùng với lệnh T-SQL. (Gợi ý: Sử dụng thủ tục lưu trữ sp_addlogin)Lập trình T-SQL , Các giao dịch & Quản bảo mật 116 Phần III Bài tập về nhàĐể tạo lập các bảng sẽ sử dụng trong các bài tập, chạy đoạn kịch bản dưới đây:Create database [CenterManagement]gouse [CenterManagement]goif exists (select * from sysobjects where id = object_id(N'[dbo].[Batch]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[Batch]GOif exists (select * from sysobjects where id = object_id(N'[dbo].[Enquiry]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[Enquiry]GOCREATE TABLE [dbo].[Batch] ([BatchNo] int NULL ,[DateStarted] Datetime NULL ,[NoOfStudentsEnrolled] [int] NULL ,[MinimumNumberOfStudents] [int] NULL,[MaximumNumberOfStudents] [int] NULL,[CourseCode] int NULL,[BatchTimings] Varchar (15) NULL,[BatchOver] bit) ON [PRIMARY]GOinsert into Batch values (1,'2001-10-08 00:00:00',8,5,20,1,'11 am to 1 pm',0)insert into Batch values (2,'2001-12-12 00:00:00',19,8,30,2,'7 am to 9 am',0)insert into Batch values (3,'2001-12-12 00:00:00',20,5,20,1,'7 pm to 9 pm',0)insert into Batch values (4,'2001-12-13 00:00:00',9,5,30,3,'7 pm to 9 pm',1)insert into Batch values (5,'2001-10-15 00:00:00',8,7,30,5,'3pm to 5 pm',0)insert into Batch values (6,'2001-10-13 00:00:00',7,4,30,4,'5 pm to 7 pm',1)insert into Batch values (7,'2001-10-14 00:00:00',4,5,30,3,'9 am to 11 am',0)insert into Batch values (8,'2002-01-15 00:00:00',10,5,20,1,'7 am to 9 am',0)print 'Table Batch created'Create table Enquiry (EnquiryNo int NULL,EName Varchar (20) NULL,EDate DateTime NULL,UserId Varchar (8) NULL,CourseCode int NULL,Qualification Varchar (20) NULL,Address Varchar (100) NULL,Lập trình T-SQL , Các giao dịch & Quản bảo mật 117 [...]...Phần 8 Lập trình T- SQL , Các giao dịch & Quản bảo m t (Thực hành) Mục tiêu bài học: Cuối bài học này các bạn có thể:  Vi t các câu lệnh T- SQL để thi hành các kiểu giao dịch khác nhau  Định nghĩa sử dụng các biến cục bộ biến toàn cục  T o lập các đăng nhập người dùng Các bước đưa ra trong chương này r t chi ti t, toàn diện t mỉ. Các phần thực hành được bám s t theo mục tiêu... sau: CREATE TABLE A (COL1 INT, COL2 CHAR(1)) SET IMPLICIT_TRANSACTIONS ON INSERT INTO A VALUES (1,'A') INSERT INTO A VALUES (2,'B') SELECT COUNT(*) FROM A COMMIT TRANSACTION INSERT INTO A VALUES (3,'C') SELECT COUNT(*) FROM A Lập trình T- SQL , Các giao dịch & Quản bảo m t 108 END SELECT UNITPRICE FROM PRODUCTS WHERE UNITPRICE=30 K t quả của truy vấn được hiển thị... hiểu về các câu lệnh T- SQL, cách sử dụng các biến toàn cục & cục bộ các hàm thư viện. Các ví dụ các bài t p trong phần thực hành này sẽ t p trung vào những chủ đề này. Chúng ta sẽ sử dụng CSDL NorthWind cho các ví dụ của chúng ta. 8.1 Các giao dịch Giao dịch là m t nhóm các thao t c của SQL Server k t hợp lại thành m t nhóm đơn lẻ cơng việc. Có các kiểu giao dịch sau đây:  Các giao... của bài học giúp chúng ta hiểu sử dụng các công cụ m t cách trọn vẹn. Bạn hãy thực hành cẩn thận theo t ng bước dưới đây. Phần I: Hướng dẫn học Thời gian: 30 ph t Phần thực hành này được k t hợp với 3 chương thuy t trước. Bởi vì các bài t p các phần hướng dẫn thực hành sẽ bao gồm t t cả các khái niệm các kỹ năng đã được giới thiệu trong các chương này. Mục tiêu của buổi thực hành này... dịch Autocommit Giao dịch Autocommit là giao dịch ngầm định. SQL server thực hiện theo chế độ t động xác nhận b t kể chế độ mặc định này là giao dịch ngầm định hoặc t ờng minh. SQL Server thực hiện trong chế độ t động xác nhận (autocommit) t i khi BEGIN TRANSACTION của giao dịch ngầm định hoặc t ờng minh được thi t lập là ON. Khi giao dịch ngầm định hoặc t ờng minh thi t lập là OFF, SQL quay trở... chế autocommit. 1. Thực hiện lệnh dưới đây. CREATE TABLE AI (Colmna INT PRIMARY KEY, Colmnb CHAR (3)) INSERT INTO AI VALUES (1, 'aaa') INSERT INTO AI VALUSE (2, 'bbb') Note: Giao dịch trên là giao dịch autocommit t khi BEGIN TRANSACTION không được thi t lập là ON. Giao dịch trên được xác nhận nếu khơng có lỗi nào xảy ra ngược lại thì quay lại điểm b t đầu (rolled back.) Lập trình. .. thi t lập là ON. Giao dịch trên được xác nhận nếu khơng có lỗi nào xảy ra ngược lại thì quay lại điểm b t đầu (rolled back.) Lập trình T- SQL , Các giao dịch & Quản bảo m t 111 Trang này chủ ý để trống Lập trình T- SQL , Các giao dịch & Quản bảo m t 119 ... ngầm định  Các giao dịch t ờng minh  Các giao dịch t động xác nhận lệnh (Auto-commit) 8.1.2 Các giao dịch ngầm định Khi m t k t nối đang làm việc trong chế độ giao dịch ngầm định, SQL Server t động khởi động m t giao dịch mới sau giao dịch hiện hành đã được xác nhận (committed) hoặc hủy bỏ (rolled back). Chế độ giao dịch ngầm định sinh ra m t chuỗi các giao dịch. 1. Mở Query Analyzer. 2. Thực hiện . bảng Course .Lập trình T- SQL , Các giao dịch & Quản lý bảo m t 118 Trang này chủ ý để trốngLập trình T- SQL , Các giao dịch & Quản lý bảo m t 119 . T o lập m t tên đăng nhập và t n người dùng với lệnh T- SQL. (Gợi ý: Sử dụng thủ t c lưu trữ sp_addlogin )Lập trình T- SQL , Các giao dịch & Quản lý bảo

Ngày đăng: 11/09/2012, 13:54

Hình ảnh liên quan

Để tạo lập các bảng sẽ sử dụng trong các bài tập, chạy đoạn kịch bản dưới đây: Create database [CenterManagement] - Lập trình T - SQL và các quản lý bảo mật

t.

ạo lập các bảng sẽ sử dụng trong các bài tập, chạy đoạn kịch bản dưới đây: Create database [CenterManagement] Xem tại trang 10 của tài liệu.
1. Tạo lập bảng Course bằng việc xem xét bảng lớp học (Batch table) và các bảng lưu trữ người đến tham khảo khoá học (Enquiry tables) - Lập trình T - SQL và các quản lý bảo mật

1..

Tạo lập bảng Course bằng việc xem xét bảng lớp học (Batch table) và các bảng lưu trữ người đến tham khảo khoá học (Enquiry tables) Xem tại trang 11 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan