Trang /
Tiêu chuẩn Quốc gia TCVN 11167-7:2015 ISO/IEC 7816-7:1999 Thẻ định danh-Thẻ mạch tích hợp-Phần 7: Lệnh liên ngành đối với ngôn ngữ truy vấn thẻ có cấu trúc (SCQL)
- Thuộc tính
- Nội dung
- Tiêu chuẩn liên quan
- Lược đồ
- Tải về
Lưu
Theo dõi văn bản
Đây là tiện ích dành cho thành viên đăng ký phần mềm.
Quý khách vui lòng Đăng nhập tài khoản LuatVietnam và đăng ký sử dụng Phần mềm tra cứu văn bản.
Báo lỗi
Đang tải dữ liệu...
Đang tải dữ liệu...
Tiêu chuẩn Việt Nam TCVN 11167-7:2015
Tiêu chuẩn Quốc gia TCVN 11167-7:2015 ISO/IEC 7816-7:1999 Thẻ định danh-Thẻ mạch tích hợp-Phần 7: Lệnh liên ngành đối với ngôn ngữ truy vấn thẻ có cấu trúc (SCQL)
Số hiệu: | TCVN 11167-7:2015 | Loại văn bản: | Tiêu chuẩn Việt Nam |
Cơ quan ban hành: | Bộ Khoa học và Công nghệ | Lĩnh vực: | Khoa học-Công nghệ, Thông tin-Truyền thông |
Ngày ban hành: | 31/12/2015 | Hiệu lực: | |
Người ký: | Tình trạng hiệu lực: | Đã biết Vui lòng đăng nhập tài khoản gói Tiêu chuẩn hoặc Nâng cao để xem Tình trạng hiệu lực. Nếu chưa có tài khoản Quý khách đăng ký tại đây! | |
Tình trạng hiệu lực: Đã biết
Ghi chú: Thêm ghi chú cá nhân cho văn bản bạn đang xem.
Hiệu lực: Đã biết
Tình trạng: Đã biết
TIÊU CHUẨN QUỐC GIA
TCVN 11167-7:2015
ISO/IEC 7816-7:1999
THẺ ĐỊNH DANH - THẺ MẠCH TÍCH HỢP - PHẦN 7: LỆNH LIÊN NGÀNH ĐỐI VỚI NGÔN NGỮ TRUY VẤN THẺ CÓ CẤU TRÚC (SCQL)
Identification cards - Integrated circuit cards - Part 7: Interindustry commands for Structured Card Query Language (SCQL)
Lời nói đầu
TCVN 11167-7:2015 hoàn toàn tương đương với ISO/IEC 7816-7:1999.
TCVN 11167-7:2015 do Tiểu Ban kỹ thuật tiêu chuẩn quốc gia TCVN/JTC 1/SC 17 “Thẻ nhận dạng” biên soạn, Tổng cục Tiêu chuẩn Đo lường Chất lượng đề nghị, Bộ Khoa học và Công nghệ công bố.
Bộ tiêu chuẩn TCVN 11167 (ISO/IEC 7816) Thẻ định danh - Thẻ mạch tích hợp gồm các tiêu chuẩn sau:
- Phần 1: Thẻ tiếp xúc - Đặc tính vật lý;
- Phần 2: Thẻ tiếp xúc - Kích thước và vị trí tiếp xúc;
- Phần 3: Thẻ tiếp xúc - Giao diện điện và giao thức truyền;
- Phần 4: Tổ chức, an ninh và lệnh trao đổi;
- Phần 5: Đăng ký của bên cung cấp ứng dụng;
- Phần 6: Phần tử dữ liệu liên ngành trong trao đổi;
- Phần 7: Lệnh liên ngành đối với ngôn ngữ truy vấn thẻ có cấu trúc;
- Phần 8: Lệnh đối với hoạt động an ninh;
- Phần 9: Lệnh đối với quản lý thẻ;
- Phần 10: Tín hiệu điện và trả lời để thiết lập lại cho thẻ đồng bộ;
- Phần 11: Xác minh cá nhân bằng phương pháp sinh trắc học;
- Phần 12: Thẻ tiếp xúc - Thủ tục vận hành và giao diện điện tử USB;
- Phần 13: Lệnh đối với quản lý ứng dụng trong môi trường đa ứng dụng;
- Phần 15: Ứng dụng thông tin mã hóa.
THẺ ĐỊNH DANH - THẺ MẠCH TÍCH HỢP - PHẦN 7: LỆNH LIÊN NGÀNH ĐỐI VỚI NGÔN NGỮ TRUY VẤN THẺ CÓ CẤU TRÚC
Identification cards - Integrated circuit cards with contacts - Part 7: Interindustry commands for structured card query language (SCQL)
1. Phạm vi áp dụng
Tiêu chuẩn này quy định:
- Khái niệm cơ sở dữ liệu SCQL (SCQL = Ngôn ngữ truy vấn thẻ có cấu trúc dựa trên SQL, xem ISO 9075)
- Lệnh liên ngành mở rộng liên quan.
2. Tài liệu viện dẫn
Các tài liệu viện dẫn sau rất cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi, bổ sung (nếu có).
TCVN 11.167-4 (ISO/IEC 7816-4) Thẻ định danh - Thẻ mạch tích hợp - Phần 4: Tổ chức, an ninh và lệnh trao đổi,
TCVN 11167-6 (ISO/IEC 7816-6) Thẻ định danh - Thẻ mạch tích hợp - Phần 6: Phần tử dữ liệu liên ngành trong trao đổi,
ISO/IEC 9075:1992, Information technology - Database languages - SQL2 (Công nghệ thông tin - Ngôn ngữ cơ sở dữ liệu - SQL2).
3. Thuật ngữ và định nghĩa
Tiêu chuẩn này áp dụng các định nghĩa sau.
3.1. Người sử dụng cơ sở dữ liệu (database basic user)
Người sử dụng SCQL mà không có các quyền đi kèm.
3.2. Tệp cơ sở dữ liệu (database file)
Tập đối tượng cơ sở dữ liệu có cấu trúc (bảng, hiển thị, từ điển) biểu diễn nội dung của cơ sở dữ liệu.
3.3. Chủ đối tượng cơ sở dữ liệu (database object owner)
Người sử dụng SCQL với quyền: tạo, bỏ bớt các đối tượng và quản lý các đặc quyền về các đối tượng này.
3.4. Chủ cơ sở dữ liệu (database owner)
Người sử dụng SCQL ban đầu quản lý các đối tượng và người sử dụng cơ sở dữ liệu.
3.5. Từ điển (dictionary)
Hiển thị trên bảng hệ thống.
3.6. Bảng hệ thống (system table)
Bảng được duy trì bởi thẻ nhằm quản lý cấu trúc cơ sở dữ liệu và truy cập cơ sở dữ liệu.
3.7. Bảng (table)
Đối tượng cơ sở dữ liệu với tên duy nhất và định rõ trong các cột và các hàng.
3.8. Hiển thị (view)
Tập con có logic của bảng.
4. Thuật ngữ viết tắt và ký hiệu
Tiêu chuẩn này áp dụng các thuật ngữ viết tắt sau.
Thuật ngữ | Tiếng Anh | Tiếng Việt |
APDU | Application protocol data unit | Đơn vị dữ liệu giao thức ứng dụng |
API | Application programming interface | Giao diện lập trình ứng dụng |
DB | Database | Cơ sở dữ liệu |
DB_O | Database owner | Chủ cơ sở dữ liệu |
DBBU | Database basic user | Người sử dụng cơ sở dữ liệu cơ sở |
DBF | Database file | Tệp cơ sở dữ liệu |
DBOO | Database object owner | Chủ đối tượng cơ sở dữ liệu |
DF | Dedicated file | Tệp dành riêng |
DO | Data object | Đối tượng dữ liệu |
ICC | Integrated circuit(s) card | Thẻ mạch tích hợp |
IFD | Interface device | Thiết bị giao diện |
MF | Master file | Tệp chủ |
SCQL | Structured card query language | Ngôn ngữ truy vấn thẻ có cấu trúc |
SQL | Structured query language | Ngôn ngữ truy vấn có cấu trúc |
TLV | Tag, length, value | Thẻ, độ dài, giá trị |
5. Khái niệm cơ sở dữ liệu SCQL
5.1. Cơ sở dữ liệu SCQL
Cơ sở dữ liệu theo tiêu chuẩn này được gọi là cơ sở dữ liệu SCQL (SCQL = Ngôn ngữ truy vấn thẻ có cấu trúc), các lệnh truy cập dựa trên chức năng SQL (xem ISO 9075) và được mã hóa theo các nguyên tắc của các lệnh liên ngành được quy định trong TCVN 11167-4 (ISO/IEC 7816-4). Bản thân cơ sở dữ liệu là tập đối tượng dữ liệu có cấu trúc được gọi là tệp cơ sở dữ liệu DBF. Theo DF phải có nhiều hơn một DBF có thể được truy cập sau khi lựa chọn DF tương ứng. Cơ sở dữ liệu cũng có thể được đính kèm trực tiếp với MF.
Hình 1 trình bày một ví dụ về việc gắn cơ sở dữ liệu trong thẻ.
Hình 1 - Ứng dụng với cơ sở dữ liệu trong thẻ đang làm việc (ví dụ)
Hệ thống ứng dụng có thể phối hợp hoạt động với cơ sở dữ liệu SQL cũng như với cơ sở dữ liệu SCQL sử dụng cùng SQL-API (API = Giao diện lập trình ứng dụng). Do đó, thẻ chứa cơ sở dữ liệu SCQL có thể xuất hiện là một phần của môi trường cơ sở dữ liệu SQL phân tán. Hình 2 trình bày cấu hình SQL điển hình với thẻ tích hợp trong thiết kế hệ thống.
Hình 2 - Cơ sở dữ liệu SCQL là một phần của môi trường cơ sở dữ liệu SQL phân tán (ví dụ)
5.2. Bảng SCQL
Cơ sở dữ liệu SCQL chứa các đối tượng được gọi là: bảng, hiển thị và từ điển. Mỗi đối tượng có thể được tham chiếu bởi mã định danh duy nhất.
Bảng là đối tượng dữ liệu có cấu trúc với tên duy nhất trong cơ sở dữ liệu, bao gồm các cột có tên và chuỗi các hàng. Số hàng có thể không giới hạn (tức là chỉ hạn chế bởi không gian nhớ có sẵn trong thẻ) hoặc có giới hạn. Bảng và các đặc tính chính được thể hiện trong Hình 3.
Hình 3 - Bảng SCQL (ví dụ) và các đặc tính chính của nó
Sau khi liên tục tạo cấu trúc bảng, tức là cột hiện có không thể được hủy bỏ hoặc cột mới không được thêm vào. Các hoạt động sau đây có thể được biểu diễn trên bảng:
- Đọc (lựa chọn)
- Chèn
- Cập nhật
- Xóa
5.3. Hiển thị SCQL
Hiển thị là tập con của bảng, quy định phần bảng có thể truy cập. Có hai loại hiển thị sau được phân biệt:
- Hiển thị (xem Hình 4) gắn các cột truy cập được gọi là hiển thị tĩnh trong ngữ cảnh này và
- Hiển thị (xem Hình 5) hạn chế truy cập đến các hàng mà nội dung của chúng phù hợp với các điều kiện (ví dụ: đến các hàng có có giá trị lớn hơn ‘20’) được gọi là hiển thị động trong ngữ cảnh này.
Hình 4 - Hiển thị tĩnh SCQL (ví dụ)
Hình 5 - Hiển thị động SCQL (ví dụ)
Sự kết hợp của hiển thị tĩnh và hiển thị động trong cùng định nghĩa hiển thị cũng có thể xảy ra.
Hiển thị giống như một bảng có tên duy nhất trong cơ sở dữ liệu SCQL. Một vài hiển thị có thể được xác định trên cùng một bảng.
Các hoạt động sau đây có thể được trình bày trên một hiển thị:
- Đọc (lựa chọn)
- Cập nhật.
5.4. Bảng và từ điển hệ thống SCQL
Bảng hệ thống được duy trì bởi thẻ và chứa thông tin cần thiết để quản lý cấu trúc và truy cập cơ sở dữ liệu. Có ba bảng hệ thống:
- Bảng mô tả đối tượng (tên ‘O’)
- Bảng mô tả người sử dụng (tên ‘U’)
- Bảng mô tả đặc quyền (tên ‘P’)
Bảng mô tả đối tượng chứa thông tin về các bảng và hiển thị lưu trữ trong cơ sở dữ liệu.
Bảng mô tả người sử dụng chứa thông tin về người sử dụng truy cập đến cơ sở dữ liệu.
Bảng mô tả đặc quyền chứa thông tin về đặc quyền theo các bảng và hiển thị trên cơ sở dữ liệu. Đặc quyền mô tả các bảng và hiển thị được người sử dụng truy cập và các hoạt động được người sử dụng thực hiện trên bảng hay hiển thị tương ứng.
Các Hình từ 6 đến 8 chỉ ra các bảng hệ thống với các cột bắt buộc.
Hình 6 - Bảng mô tả đối tượng
Hình 7 - Bảng mô tả người sử dụng
Hình 8 - Bảng mô tả đặc quyền
Đối với việc truy cập thông tin có trong bảng hệ thống, các hiển thị trên bảng hệ thống này có thể được tạo ra. Hiển thị trên bảng hệ thống được gọi là từ điển SCQL. Hoạt động mà người sử dụng chỉ có thể thực hiện trên từ điển là đọc (lựa chọn).
5.5. Hồ sơ người sử dụng SCQL
Hồ sơ người sử dụng SCQL được miêu tả bởi các quyền hạn đặc biệt. Hồ sơ người sử dụng được đính kèm với mã định danh người sử dụng được lưu trữ trong bảng mô tả người sử dụng. Bảng 1 trình bày các hồ sơ và quyền hạn đính kèm.
Bảng 1 - Hồ sơ người sử dụng SCQL và các quyền hạn
Hồ sơ | Người sử dụng | Quyền hạn |
DB_O | Chủ của cơ sở dữ liệu | - Thêm/bỏ bớt người sử dụng với hồ sơ DBOO hoặc DBBU - Tạo/xóa các đối tượng (bảng/hiển thị) - Cấp/thu hồi các đặc quyền về đối tượng sở hữu - Tạo/xóa các từ điển truy cập đến tất cả các hàng trong bảng hệ thống - Truy cập đến các đối tượng không sở hữu theo các đặc quyền được cấp |
DBOO | Chủ của đối tượng cơ sở dữ liệu | - Thêm/bỏ bớt người sử dụng với hồ sơ DBBU - Tạo/xóa các đối tượng (bảng/hiển thị) - Cấp/thu hồi các đặc quyền về đối tượng sở hữu - Tạo/xóa các từ điển truy cập đến các hàng ở đó DBOO được đăng ký là OBJOWN trong *O, USROWN trong *U hoặc OBJOWN trong *P - Truy cập đến các đối tượng không sở hữu theo các đặc quyền được cấp |
DBBU | Người sử dụng cơ sở dữ liệu với id người sử dụng cụ thể hoặc id người sử dụng chung | - Truy cập đến các đối tượng theo các đặc quyền được cấp |
CHÚ THÍCH Người sử dụng hồ sơ DB_O chỉ được chèn vào bảng mô tả người sử dụng trong quá trình cài đặt cơ sở dữ liệu SCQL.
6. Lệnh liên quan đến SCQL
6.1. Khía cạnh chung
Ngôn ngữ truy vấn thẻ có cấu trúc (SCQL) được dựa trên chức năng của Ngôn ngữ truy vấn có cấu trúc (SQL) được chuẩn hóa. Câu lệnh SQL được ánh xạ đến thao tác SCQL với lệnh PERFORM SCQL OPERATION (thực hiện thao tác SCQL) (xem Hình 9 và Bảng 2).
Hình 9 - Nguyên tắc ánh xạ của lệnh SQL đến thao tác SCQL
Các thông số bắt buộc của một lệnh luôn xảy ra trong chuỗi được quy định trong bảng lệnh liên quan. Do đó thẻ lệnh không có mặt trong thao tác SCQL. Thông số tùy chọn có mặt trong định dạng TLV nếu không được biểu thị.
Cũng như lệnh FERFORM SCQL OPERATION, hai lệnh khác thuộc về môi trường SCQL, nhưng có thể được sử dụng bên ngoài môi trường SCQL:
- Lệnh PERFORM TRANSACTION OPERATION (xem Hình 10) và
- Lệnh PERFORM USER OPERATION (xem Hình 10).
6.2. Nhóm và mã hóa lệnh
Các lệnh liên quan đến SCQL có thể được nhóm như trong Hình 10.
Hình 10 - Các lệnh liên quan đến SCQL
Đối với các lệnh được quy định trong tiêu chuẩn này, mã lệnh và việc mã hóa các thao tác tương ứng được trình bày trong Bảng 2.
Bảng 2 - Mã lệnh và các thao tác
Mã INS | Ý nghĩa |
‘10’
| Thực hiện thao tác SCQL Mã hóa và ý nghĩa của P2: ‘80’ = CREATE TABLE (tạo bảng) ‘81’ = CREATE VIEW (tạo hiển thị) ‘82’ = CREATE DICTIONARY (tạo từ điển) ‘83’ = DROP TABLE (bỏ bớt bảng) ‘84’ = DROP VIEW (bỏ bớt hiển thị) ‘85’ = GRANT (cấp) ‘86’ = REVOKE (thu hồi) ‘87’ = DECLARE CURSOR (khai báo con trỏ) ‘88’ = OPEN (mở) ‘89’ = NEXT (kế tiếp) ‘8A’ = FETCH (tìm nạp) ‘8B’ = FETCH NEXT (tìm nạp kế tiếp) ‘8C’ = INSERT (chèn) ‘8D’ = UPDATE (cập nhật) ‘8E’ = DELETE (xóa) |
‘12’ | Thực hiện thao tác trao đổi Mã hóa và ý nghĩa của P2: ‘80’ = BEGIN (bắt đầu) ‘81’ = COMMIT (thỏa hiệp) ‘82’ = ROLLBACK (hủy thỏa hiệp) |
‘14’ | Thực hiện thao tác người dùng Mã hóa và ý nghĩa của P2: ‘80’ = PRESENT USER (thể hiện người sử dụng) ‘81’ = CREATE USER (tạo người sử dụng) ‘82’ = DELETE USER (xóa người sử dụng) |
Việc sử dụng các ví dụ về lệnh và mã hóa này được trình bày trong Phụ lục A.
6.3. Ký hiệu và mã hóa đặc biệt
Trong các điều tiếp theo, ký hiệu sau được sử dụng để mô tả câu lệnh SQL:
- Các chữ cái in hoa trong biểu thức SQL (biểu thức cố định của ngôn ngữ SQL)
- [ ] có nghĩa là tùy chọn
- <...> có nghĩa là chuỗi thuộc tính
- ::= có nghĩa là bao gồm
- ï có nghĩa là hoặc
- * có nghĩa là tất cả
Đối với việc mã hóa các thông số, ký hiệu sau được sử dụng:
- Lp = độ dài (mã hóa trong một byte) của thông số tiếp theo
- <…> = chuỗi thông số của các byte với độ dài Lp và ý nghĩa đưa ra trong <...>
Đối với việc mã hóa kích thước D (ví dụ: số các cột hoặc số các điều kiện), quy tắc sau đây áp dụng:
- D::=N với N = Số các mục tiếp theo, mã hóa trong một byte
Hoặc
- D::=Ln<N> với Ln=‘01’ (N mã hóa trong một byte)
Một mục bao gồm một hoặc một vài thông số liên tiếp. Kích thước Rỗng được mã hóa trên tập một byte tại ‘00’. Ý nghĩa của thông số Rỗng là “tất cả các cột” hoặc “không có điều kiện” theo lệnh.
Đối với các toán tử so sánh xảy ra trong các điều kiện tìm kiếm, thì sẽ sử dụng mã hóa theo Bảng 3.
Bảng 3 - Mã hóa các toán tử so sánh
Toán tử so sánh | Mã hóa | Ý nghĩa |
= < > ≤ ≥ ≠ | ‘3D’ ‘3C’ ‘3E’ ‘4C’ ‘47’ ‘23’ | Bằng Nhỏ hơn Lớn hơn Nhỏ hơn hoặc bằng Lớn hơn hoặc bằng Không bằng với |
6.4. Byte trạng thái
Các byte trạng thái SW1-SW2 của một hồi đáp biểu thị tình trạng xử lý trong thẻ. Bảng 4 chỉ ra ý nghĩa chung của giá trị SW1-SW2 được quy định trong tiêu chuẩn này. Đối với mỗi lệnh hoặc thao tác được thực hiện thị ở mỗi điều phù hợp sẽ cung cấp các ý nghĩa chi tiết hơn.
So với ý nghĩa của byte trạng thái được quy định trong TCVN 11167-4 (ISO/IEC 7816), tiêu chuẩn này quy định việc sử dụng chúng một cách chính xác hơn.
Bảng 4 - Byte trạng thái
SW1-SW2 | Quy định trong TCVN 11167-4 (ISO/IEC 7816) | Ý nghĩa |
‘9000’ ‘61xx’ |
Phần 4 Phần 4 | Xử lý thường Lệnh thành công Lệnh thành công, xx mã hóa số byte dữ liệu được tìm nạp bởi GET RESPONSE |
‘6282’ |
Phần 4 | Xử lý cảnh báo Kết thúc bảng |
‘6500’ ‘6581’ |
Phần 4 Phần 4 | Lỗi thực thi Không có thông tin Bộ nhớ hỏng (ví dụ: thông tin sai) |
‘6700’ |
Phần 4 | Kiểm tra lỗi Độ dài sai |
‘6900’ ‘6982’ ‘6985’ |
Phần 4 Phần 4 Phần 4 | Lệnh không được phép Không có thông tin Trạng thái an ninh không thỏa mãn Lệnh hoặc thao tác cần thiết không được thực hiện trước đó |
‘6A00’ ‘6A80’ ‘6A81’ ‘6A84’ ‘6A88’ ‘6A89’ |
Phần 4 Phần 4 Phần 4 Phần 4 Phần 4 Phần 4 | Thông số sai Không có thông tin Thông số không chính xác trong trường dữ liệu Thao tác không được hỗ trợ Không đủ không gian bộ nhớ Không tìm thấy đối tượng tham chiếu Đối tượng đã tồn tại |
‘6Cxx’ | Phần 4 | Độ dài sai Le: SW2 cho biết độ dài chính xác |
‘6D00’ | Phần 4 | Mã lệnh không được hỗ trợ |
6.5. Mã hóa mã định danh
Các quy ước về mã định danh sau được quy định:
<mã định danh> ::= <chữ cái in hoa> [<chữ cái in hoa> | <chữ số> | <_>]
<chữ cái in hoa > ::= A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
<chữ số> ::= 0|1|2|3|4|5|6|7|8|9
<tên bảng> ::= <mã định danh, tối đa 8 byte>
<tên hiển thị> ::= <mã định danh, tối đa 8 byte >
<tên từ điển> ::= <phần định rõ của tên từ điển><_><O|U|P>
<tên cột> ::= < mã định danh, tối đa 8 byte >
< phần định rõ của tên từ điển > ::= < mã định danh, tối đa 6 byte > | SYSTAB
<id người sử dụng> ::=
<id cá nhân> |
<id nhóm> <dấu phân cách> < id cá nhân> |
<id nhóm> <dấu phân cách> < id nhóm con>
<dấu phân cách> < id cá nhân> |
< id nhóm> <dấu phân cách > <dấu hoa thị> |
< id nhóm > < dấu phân cách > < id nhóm con>
< dấu phân cách > < dấu hoa thị > |
< id nhóm> <dấu phân cách > < dấu hoa thị >
< dấu phân cách > < dấu hoa thị >
< id nhóm> ::= < mã định danh, tối đa 8 byte >
< id nhóm con > ::= < mã định danh, tối đa 8 byte >
< id cá nhân> ::= < mã định danh, tối đa 8 byte > | < id người sử dụng đặc biệt>
<dấu phân cách> ::=.
<dấu hoa thị> ::= *
< id người sử dụng đặc biệt > ::= <chủ thẻ> | <người sử dụng công khai>
<chủ thẻ> ::= CHOLDER
<người sử dụng công khai> ::= PUBLIC
CHOLDER là id người sử dụng chung cho chủ thẻ, PUBLIC là id người sử dụng chung cho người sử dụng cơ sở dữ liệu, xem Bảng 1.
Ý nghĩa của dấu hoa thị là ‘không quan tâm’, nghĩa là việc mã hóa của phần này không được so sánh.
Đối với việc kiểm tra id người sử dụng, các trường hợp sau đây phải được phân biệt:
Nếu id người sử dụng là id cá nhân thì id người sử dụng phải giống hệt với id người sử dụng đã đăng ký.
Nếu id người sử dụng bao gồm id nhóm kết hợp với id cá nhân thì các bước sau đây phải được thực hiện:
1) Kiểm tra xem liệu id đầy đủ của người sử dụng có được đăng ký hay không.
2) Nếu không thì kiểm tra xem liệu <group id>.* có được đăng ký hay không.
Nếu id người sử dụng bao gồm: id nhóm kết hợp với id nhóm con và id cá nhân thì các bước sau phải được thực hiện:
a) Kiểm tra xem liệu id đầy đủ của người sử dụng có được đăng ký hay không
b) Nếu không thì kiểm tra xem liệu <group id>.<subgroup id>.* có được đăng ký hay không
c) Nếu không thì kiểm tra xem liệu <group id>.*.* có được đăng ký hay không
Việc xác nhận id người sử dụng được thực hiện nếu thao tác PRESENT USER được thực hiện trong các tình huống mà điều khiển truy cập đến các bảng, hiển thị và các từ điển được yêu cầu (xem DECLARE USER và INSERT)
CHÚ THÍCH Cơ chế xây dựng nhóm người sử dụng không phải một phần của SQL.
6.6. Thuộc tính an ninh của bảng, hiển thị và người sử dụng
Các quy ước về thuộc tính an ninh sau đây được quy định:
<thuộc tính an ninh>::=<đối tượng dữ liệu liên quan đến an ninh như đã quy định trong các phần khác của bộ tiêu chuẩn này, ví dụ: đối với việc xác thực hoặc điều khiển truy cập>
Các thuộc tính an ninh kết hợp với các bảng và các hiển thị có thể liên quan đến các thủ tục xác thực được thực hiện trước khi truy cập hoặc mô tả cơ chế thông điệp an toàn được áp dụng, nếu các hoạt động thao tác dữ liệu được thực hiện (ví dụ: đọc và ghi ở chế độ tin cậy)
6.7. Kết nối id người sử dụng với thao tác INSERT và UPDATE
Nếu cột cuối cùng của bảng có tên USER thì thẻ sẽ duy trì một bản ghi của người sử dụng tạo sửa đổi cuối cùng cho bảng. Thao tác kết nối bao gồm việc chèn id người sử dụng hiện hành, thiết lập với thao tác PRESENT USER trong cột USER khi thực hiện thao tác INSERT. Khi thực hiện thao tác UPDATE thì thẻ sẽ ghi đè id người sử dụng hiện có trong cột USER với id người sử dụng hiện hành.
7. Hoạt động của cơ sở dữ liệu
7.1. Lệnh CREATE TABLE
7.1.1. Định nghĩa và phạm vi áp dụng
Thao tác CREATE TABLE quy định bảng với các cột và các thuộc tính an ninh. Việc quy định bảng được thêm vào trong bảng mô tả đối tượng.
7.1.2. Sử dụng có điều kiện và an toàn
Bảng chỉ có thể được tạo bởi người sử dụng với hồ sơ DB_O và DBOO.
7.1.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
CREATE TABLE <tên bảng> <danh sách phần tử bảng> [<thuộc tính an ninh>,...]
<tên bảng> ::= <mã định danh, xem điều 6.5>
<danh sách phần tử bảng > ::= (<xác định cột> [, <xác định cột> ...] [<cột USER>])
<thuộc tính an ninh> ::= < DO liên quan đến an ninh, xem điều 6.6>
<xác định cột> ::= <tên cột>
[<dấu phân cách><xác định ràng buộc duy nhất>]
[<dấu phân cách><kiểu dữ liệu>]
<tên cột> ::= <mã định danh, xem điều 6.5>
<cột USER, xem điều 6.7> ::= USER
< xác định ràng buộc duy nhất > ::= U
<dấu phân cách> ::= .
<kiểu dữ liệu> ::= <kí tự biến (độ dài)>
< kí tự biến (độ dài) > ::= V<độ dài>
<độ dài> ::= <độ dài mã hóa nhị phân trên 1 byte>
Nếu việc quy định ràng buộc duy nhất được sử dụng và hỗ trợ thì thẻ phải đảm bảo rằng tất cả các giá trị trong cột liên quan là duy nhất.
Nếu chỉ báo độ dài biến (nghĩa là: độ dài tối đa) có mặt và được hỗ trợ thì thẻ phải kiểm tra độ dài hiện tại của cột sao cho không vượt quá độ dài tối đa đã quy định.
Bảng 5 - Thực hiện thao tác SCQL của APDU lệnh cho CREATE TABLE
CLA | Quy định trong TCVN 11167-4 (ISO/IEC 7816-4) |
INS | ‘10’(=PERFORM SCQL OPERATION) |
P1 | ‘00’, các giá trị RFU khác |
P2 | ‘80’=CREATE TABLE |
Trường Lc | Độ dài của trường dữ liệu tiếp theo |
Trường dữ liệu | Lp <tên bảng, xem Điều 6.5> D, định vị N (các cột) Các mục N: Lp <xác định cột> Các thông số tùy chọn: Lp <số hàng tối đa, nhị phân mã hóa 1 byte> Lp<thuộc tính an ninh >[<thuộc tính an ninh>,..] |
Trường Le | Trống |
7.1.4. Thông điệp hồi đáp
Bảng 6 - APDU hồi đáp thực hiện thao tác SCQL cho CREATE TABLE
Trường dữ liệu SW1-SW2 | Trống Các byte trạng thái |
7.1.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2=
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW1 = ‘6A’ với SW2=
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘84’: Không đủ không gian
• ‘89’: Đối tượng đã tồn tại
7.2. Lệnh CREATE VIEW
7.2.1. Định nghĩa và phạm vi áp dụng
Hoạt động CREATE VIEW quy định một hiển thị trên bảng. Việc quy định hiển thị được thêm vào trong bảng mô tả đối tượng.
7.2.2. Sử dụng có điều kiện và an toàn
Hiển thị chỉ có thể được tạo bởi chủ bảng tham chiếu.
7.2.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
CREATE VIEW <tên hiển thị> AS <xác định hiển thị> [<thuộc tính an ninh>, ...]
<tên hiển thị> = <mã định danh, xem điều 6.5>
<xác định hiển thị > ::= SELECT <lựa chọn danh sách> FROM <tên đối tượng> [WHERE <tìm điều kiện> [AND <tìm điều kiện>, ...]]
<thuộc tính an ninh>::= < DO liên quan đến an ninh, xem điều 6.6>
<lựa chọn danh sách> ::= * ï <tên cột> [, <tên cột>]
<tên đối tượng> ::= <tên bảng>
<tìm điều kiện> ::= <tên cột> <toán tử so sánh> <string>
<toán tử so sánh> ::= = ï < ï > ï ≤ ï ≥ ï ≠
<string> ::= ‘<chuỗi các byte>’
* = tất cả các cột
Bảng 7 - APDU lệnh thực hiện thao tác SCQL cho CREATE VIEW
CLA | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) |
INS | ‘10 (=PERFORM SCQL OPERATON) |
P1 | ‘00’, các giá trị RFU khác |
P2 | ‘81’ = CREATE VIEW |
Trường Lc | Độ dài của trường dữ liệu tiếp theo |
Trường dữ liệu | Lp <tên hiển thị, xem điều 6.5> Lp <tên bảng> D, định vị N (các cột) Các mục N: Lp <tên cột> D, N cố định (các điều kiện) Các mục N bao gồm 3 thông số: Lp <tên cột> Lp <toán tử so sánh> Lp <string> Các thông số tùy chọn: Lp<thuộc tính an ninh >[<thuộc tính an ninh>,...] |
Trường Le | Rỗng |
CHÚ THÍCH Nếu có mặt một vài điều kiện thì chúng được kết hợp với AND.
7.2.4. Thông điệp hồi đáp
Bảng 8 - APDU hồi đáp thực hiện thao tác SCQL cho CREATE VIEW
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.2.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW1 =‘6A’ với SW2=
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘84’: Không đủ không gian bộ nhớ
• ‘88’: Không tìm thấy đối tượng
• ‘89’: Đối tượng đã tồn tại
7.3. Lệnh CREATE DICTIONARY
7.3.1. Định nghĩa và phạm vi áp dụng
Thao tác CREATE DICTIONARY quy định một hiển thị trên các bảng hệ thống *O, *U và *P. Việc quy định hiển thị cố định được bổ sung bởi thẻ trong bảng mô tả đối tượng, xem Bảng 11 và 12. Các hàng của bảng hệ thống có thể được đọc là độc lập với hồ sơ của người sử dụng.
CHÚ THÍCH Lệnh này không có tính tương đương trong SQL.
7.3.2. Sử dụng có điều kiện và an toàn
Từ điển chỉ có thể được tạo bởi DB_O hoặc DBOO.
7.3.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh mở rộng SQL sau đây:
CREATE DICTIONARY <phần định rõ của tên từ điển>
<phần định rõ của tên từ điển>::<mã định danh, tối đa 6 byte, xem điều 6.5>|SYSTAB
CHÚ THÍCH Phần định rõ của tên từ điển được hoàn thiện bởi thẻ bằng cách thêm vào _O cho việc hiển thị bảng mô tả đối tượng, _U cho việc hiển thị bảng mô tả người sử dụng và _P cho việc hiển thị bảng mô tả đặc quyền. SYSTAB được sử dụng nếu cần như một tên từ điển chung.
Bảng 9 - APDU lệnh thực hiện thao tác SCQL cho CREATE DICTIONARY
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘82’ = CREATE DICTIONARY Độ dài của trường dữ liệu tiếp theo Lp <phần định rõ của tên từ điển, xem điều 6.5> Rỗng |
Bảng 10 - Các hàng được chèn vào nếu người sử dụng là DB_O
*O (Bảng mô tả đối tượng) | |||
OBJNAM | OBJOWN | OBJTYP | OPJDES |
<tên từ điển định rõ>_O | <id người sử dụng của DB_O> | V | Tất cả hoặc tên của các cột |
<tên từ điển định rõ>_U | <id người sử dụng của DB_O> | V | Tất cả hoặc tên của các cột |
<tên từ điển định rõ>_P | <id người sử dụng của DB_O> | V | Tát cả hoặc tên của các cột |
CHÚ THÍCH Trong Bảng 10 cột OBJOPT là Rỗng và không được chỉ ra ở đây.
Bảng 11 - Các hàng được chèn vào nếu người sử dụng là DBOO
*O (Bảng mô tả đối tượng) | |||
OBJNAM | OBJOWN | OBJTYP | OPJDES |
<tên từ điển định rõ>_O | <id người sử dụng của DBOO> | V | Tất cả hoặc tên của các cột; điều kiện: OBJOWN =<id người sử dụng của DBOO> |
<tên từ điển định rõ>_U | <id người sử dụng của DBOO> | V | Tất cả hoặc tên của các cột điều kiện: OBJOWN =<id người sử dụng của DBOO> |
<tên từ điển định rõ>_P | <id người sử dụng của DBOO> | V | Tất cả hoặc tên của các cột; điều kiện: OBJOWN =<id người sử dụng của DBOO> |
CHÚ THÍCH Trong Bảng 11 cột OBJOPT là Rỗng và không được chỉ ra ở đây.
7.3.4. Thông điệp hồi đáp
Bảng 12 - APDU hồi đáp thực hiện thao tác SCQL cho CREATE DICTIONARY
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.3.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW 1 =‘6A’ với SW2=
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘84’: Không đủ không gian bộ nhớ
• ‘89’: Đối tượng đã tồn tại
7.4. Lệnh DROP TABLE
7.4.1. Định nghĩa và phạm vi áp dụng
Với thao tác DROP TABLE, một bảng có thể bị bỏ bớt.
7.4.2. Sử dụng có điều kiện và an toàn
Một bảng chỉ có thể bị bớt bởi chủ của nó. Các đặc quyền kết hợp với bảng nên tự động bị bỏ bớt.
7.4.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
DROP TABLE <tên bảng>
Bảng 13 - APDU lệnh thực hiện thao tác SCQL cho DROP TABLE
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘83’ = DROP TABLE Độ dài của trường dữ liệu tiếp theo Lp <tên bảng> Rỗng |
7.4.4. Thông điệp hồi đáp
Bảng 14 - APDU hồi đáp thực hiện thao tác SCQL cho DROP TABLE
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.4.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW 1 = ‘6A’ với SW2 =
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘88’: Không tìm thấy đối tượng tham chiếu
7.5. Lệnh DROP VIEW
7.5.1. Định nghĩa và phạm vi áp dụng
Với thao tác DROP VIEW, một bảng có thể bị bỏ bớt.
7.5.2. Sử dụng có điều kiện và an toàn
Một hiển thị chỉ có thể bị bớt bởi chủ của nó. Các đặc quyền kết hợp với bảng nên tự động bị bỏ bớt.
7.5.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
DROP VIEW <tên hiển thị hoặc tên từ điển>
Bảng 15 - APDU lệnh thực hiện thao tác SCQL cho DROP VIEW
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘84’ = DROP VIEW Độ dài của trường dữ liệu tiếp theo Lp <tên bảng hoặc tên từ điển> Rỗng |
7.5.4. Thông điệp hồi đáp
Bảng 16 - APDU hồi đáp thực hiện thao tác SCQL cho DROP VIEW
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.5.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW 1 =‘6A’ với SW2=
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘88’: Không tìm thấy đối tượng tham chiếu
7.6. Lệnh GRANT
7.6.1. Định nghĩa và phạm vi áp dụng
Thao tác GRANT cho phép cấp các đặc quyền cho người sử dụng đơn lẻ, cho nhóm người sử dụng hoặc cho tất cả người sử dụng.
Các đặc quyền sau có thể được cấp:
a) Đặc quyền đối với truy cập bảng:
- SELECT (lựa chọn)
- INSERT (chèn)
- UPDATE (cập nhật)
- DELETE (xóa)
b) Đặc quyền đối với truy cập hiển thị:
- SELECT (lựa chọn)
- UPDATE (cập nhật)
c) Đặc quyền đối với truy cập từ điển:
- SELECT (lựa chọn)
CHÚ THÍCH Nếu ngoài đặc quyền cho phép truy cấp được yêu cầu (tức là thể hiện bằng mật khẩu) trước khi thao tác tương ứng được thực hiện thì điều này phải được quy định trong các thuộc tính an ninh quy định cho bảng hoặc hiển thị tương ứng.
7.6.2. Sử dụng có điều kiện và an toàn
Chỉ có chủ của bảng hoặc hiển thị mới có thể cấp hoặc thu hồi các đặc quyền.
7.6.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
GRANT<các đặc quyền>ON<tên đối tượng>TO<người được cấp>
<các đặc quyền>::=<hoạt động>[,<hoạt động>...]|ALL
<hoạt động>::=SELECT|INSERT|UPDATE|DELETE
<tên đối tượng>::=<tên bảng>|<tên hiển thị>| <tên từ điển>
<người được cấp>::=<id người sử dụng, xem điều 6.5>|*
*= tất cả người sử dụng
Bảng 17 - APDU lệnh thực hiện thao tác SCQL cho GRANT
CLA INS P1 P2 Trường Lc Trường dữ liệu
Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘85’ = GRANT Độ dài của trường dữ liệu tiếp theo Lp <các đặc quyền, mã hóa xem bảng 18> Lp <tên bảng, tên hiển thị hoặc tên từ điển> Lp<id người sử dụng (xem điều 6.5) hoặc *> Rỗng |
Bảng 18 - Mã hóa các đặc quyền
Đặc quyền | Mã hóa trong SCQL |
INSERT SELECT UPDATE DELETE Tất cả | ‘41’ ‘42’ ‘44’ ‘48’ ‘4F’ |
7.6.4. Thông điệp hồi đáp
Bảng 19 - APDU hồi đáp thực hiện thao tác SCQL cho GRANT
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.6.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW 1 =‘6A’ với SW2=
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘84’: Không đủ không gian bộ nhớ
• ‘88’: Không tìm thấy đối tượng tham chiếu
7.7. Lệnh REVOKE
7.7.1. Định nghĩa và phạm vi áp dụng
Thao tác REVOKE cho phép thu hồi các đặc quyền đã cấp trước đó (xem Điều 7.6).
7.7.2. Sử dụng có điều kiện và an toàn
Chỉ có chủ của bảng hoặc hiển thị mới có thể thu hồi các đặc quyền.
7.7.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
REVOKE<các đặc quyền>ON<tên đối tượng>FROM<người được cấp>
<các đặc quyền>::=<hoạt động>[,<hoạt động>...]|ALL
<hoạt động>::=SELECT|INSERT|UPDATE|DELETE
<tên đối tượng>::=<tên bảng>|<tên hiển thị>| <tên từ điển>
<người được cấp>::=<id người sử dụng>|*
*= tất cả người sử dụng
Bảng 17 - APDU lệnh thực hiện thao tác SCQL cho REVOKE
CLA INS P1 P2 Trường Lc Trường dữ liệu
Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘86’ = REVOKE Độ dài của trường dữ liệu tiếp theo Lp <các đặc quyền, mã hóa xem bảng 18> Lp <tên bảng, tên hiển thị hoặc tên từ điển> Lp<id người sử dụng hoặc *> Rỗng |
7.7.4. Thông điệp hồi đáp
Bảng 21 - APDU hồi đáp thực hiện thao tác SCQL cho REVOKE
Trường dữ liệu SW1 - SW2 | Trống Các byte trạng thái |
7.7.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW 1 =‘6A’ với SW2=
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘88’: Không tìm thấy đối tượng tham chiếu
7.8. Lệnh DECLARE CURSOR
7.8.1. Định nghĩa và phạm vi áp dụng
Con trỏ được sử dụng để chỉ tới một cột trong bảng, hiển thị hoặc từ điển. Thao tác DECLARE CURSOR được sử dụng để khai báo một con trỏ.
7.8.2. Sử dụng có điều kiện và an toàn
Việc khai báo một con trỏ chỉ được chấp nhận nếu người sử dụng thực tế được phép truy cập bảng, hiển thị hoặc từ điển tham chiếu. Người sử dụng phải là chủ của đối tượng tham chiếu hoặc có ít nhất một đặc quyền truy cập đến đối tượng tham chiếu (để so sánh id người sử dụng hiện hành với id người sử dụng lưu trữ trong bảng hệ thống *P, xem Điều 6.5).
Chỉ có một con trỏ tồn tại ở thời gian cho trước, tức là nếu một con trỏ mới được khai báo thì con trỏ trước đó không còn hiệu lực nữa.
7.8.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
DECLARE CURSOR FOR <lựa chọn>
<lựa chọn>::=SELECT <lựa chọn danh sách>FROM<tên đối tượng>[WHERE<tìm kiếm điều kiện>[AND<tìm kiếm điều kiện>,...]
<lựa chọn danh sách>::=*|<tên cột>[,<tên cột>]
<tên đối tượng>::=<tên bảng> | <tên hiển thị> | <tên từ điển>
<tìm kiếm điều kiện>::=<tên cột> <toán tử so sánh> <string>
<toán tử so sánh>::== | < | > | ≤ | ≥ | ≠
<string>::=‘<chuỗi các byte>’
*= tất cả các cột
CHÚ THÍCH Vì chỉ có một con trỏ tại thời điểm có thể xảy ra nên không có lên con trỏ được sử dụng
Bảng 22 - APDU lệnh thực hiện thao tác SCQL cho DECLARE CURSOR
CLA INS P1 P2 Trường Lc Trường dữ liệu | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘87’ = DECLARE CURSOR Độ dài của trường dữ liệu tiếp theo Lp <tên bảng, tên hiển thị hoặc tên từ điển> D, định vị N (các cột) Các mục N: Lp <tên cột> Nếu các điều kiện có mặt: D, N cố định (các điều kiện) Các mục N bao gồm 3 thông số: Lp<tên cột> Lp <toán tử so sánh> Lp<string> |
Trường Le | Trống |
CHÚ THÍCH Nếu có mặt một vài điều kiện thì chúng sẽ được kết hợp với AND.
7.8.4. Thông điệp hồi đáp
Bảng 23 - APDU hồi đáp thực hiện thao tác SCQL cho DECLARE CURSOR
Trường dữ liệu SW1 - SW2 | Trống Các byte trạng thái |
7.8.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW 1 =‘6A’ với SW2=
• ‘80’: Các thông số không chính xác trong trường dữ liệu
7.9. Lệnh OPEN
7.9.1. Định nghĩa và phạm vi áp dụng
Thao tác OPEN mở một con trỏ, tức là con trỏ được đặt trên hàng đầu tiên đáp ứng lựa chọn được quy định trước với thao tác DECLARE CURSOR.
7.9.2. Sử dụng có điều kiện và an toàn
Con trỏ phải được khai báo trước đó.
7.9.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
OPEN
Bảng 24 - APDU lệnh thực hiện thao tác SCQL cho OPEN
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘88’ = OPEN Trống Trống Trống |
7.9.4. Thông điệp hồi đáp
Bảng 25 - APDU hồi đáp thực hiện thao tác SCQL cho OPEN
Trường dữ liệu SW1 - SW2 | Trống Các byte trạng thái |
7.9.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 =‘62’ với SW2 =
• ‘82’: Kết thúc bảng
- SW 1 = ‘69’ với SW2=
• ‘85’: Các lệnh hoặc thao tác cần thiết không được thực hiện trước đó (không có con trỏ nào được xác định)
7.10. Lệnh NEXT
7.10.1. Định nghĩa và phạm vi áp dụng
Thao tác NEXT thiết lập con trỏ ở hàng tiếp theo đáp ứng đặc tả của con trỏ.
7.10.2. Sử dụng có điều kiện và an toàn
Con trỏ phải được mở trước đó.
7.10.3. Thông điệp lệnh
Thao tác SCQL liên quan đế câu lệnh SQL sau đây:
NEXT
Bảng 26 - APDU lệnh thực hiện thao tác SCQL cho NEXT
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘89’ = NEXT Trống Trống Trống |
7.10.4. Thông điệp hồi đáp
Bảng 27 - APDU hồi đáp thực hiện thao tác SCQL cho NEXT
Trường dữ liệu SW1 - SW2 | Trống Các byte trạng thái |
7.10.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘62’ với SW2 =
• ‘82’: Kết thúc bảng
- SW 1 =‘69’ với SW2=
• ‘85’: Các lệnh hoặc thao tác cần thiết không được thực hiện trước đó (không có con trỏ nào được xác định)
7.11. Lệnh FETCH
7.11.1. Định nghĩa và phạm vi áp dụng
Thao tác FETCH cho phép tìm nạp một hàng hoặc một phần của nó. Con trỏ phải chỉ đến hàng được tìm nạp.
7.11.2. Sử dụng có điều kiện và an toàn
Thao tác chỉ có thể được thực hiện bởi chủ của đối tượng hoặc người sử dụng với đặc quyền SELECT. Con trỏ phải được mở trước đó.
7.11.3. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
FETCH
Bảng 28 - APDU lệnh thực hiện thao tác SCQL cho FETCH
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘8A’ = FETCH Rỗng Rỗng Độ dài lớn nhất của dữ liệu mong muốn |
7.11.4. Thông điệp hồi đáp
Bảng 29 - APDU hồi đáp thực hiện thao tác SCQL cho FETCH
Trường dữ liệu SW1 - SW2 | D, định vị N (các cột) Các mục N: Lp <string> Các byte trạng thái |
CHÚ THÍCH Trong trường hợp T=0 giao thức truyền được sử dụng, độ dài của dữ liệu đã chọn được chỉ ra trong các byte trạng thái (SW1-SW2=‘6Cxx’, trong đó xx cho biết số byte dữ liệu có sẵn). Dữ liệu phải được lấy lại bằng cách phát hành lại cùng một lệnh với giá trị Le trong SW2.
Trong trường hợp T =1 giao thức truyền được sử dụng, dữ liệu được truyền trong APDU hồi đáp lệnh FETCH.
7.11.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
• ‘85’: Các lệnh hoặc hoạt động cần thiết không được thực hiện trước đó (không có con trỏ nào được xác định)
7.12. Lệnh FETCH NEXT
7.12.1. Định nghĩa và phạm vi áp dụng
Thao tác FETCH NEXT phải được sử dụng để đọc hàng tiếp theo từ vị trí con trỏ. Con trỏ được thiết lập đến hàng đã tìm nạp.
7.12.2. Sử dụng có điều kiện và an toàn
Thao tác chỉ có thể được thực hiện bởi chủ của đối tượng hoặc người sử dụng với đặc quyền SECLECT. Con trỏ phải được mở trước đó.
7.12.3. Thông điệp lệnh
Thao tác SCQL liên quan câu lệnh SQL sau đây:
FETCH NEXT
Bảng 30 - APDU lệnh thực hiện thao tác SCQL cho FETCH NEXT
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘8B’ = FETCH NEXT Rỗng Rỗng Độ dài lớn nhất của dữ liệu mong muốn |
7.12.4. Thông điệp hồi đáp
Bảng 31 - APDU hồi đáp thực hiện thao tác SCQL cho FETCH NEXT
Trường dữ liệu SW1 - SW2 | D, định vị N (các cột) Các mục N: Lp <string> Các byte trạng thái |
Xem CHÚ THÍCH bên dưới Bảng 29.
7.12.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Kết thúc bảng
- SW 1 = ‘62’ với SW2=
• ‘82’: Trạng thái an ninh không thỏa mãn
• ‘85’: Các lệnh hoặc thao tác cần thiết không được thực hiện trước đó (không có con trỏ nào được xác định)
7.13. Lệnh INSERT
7.13.1. Định nghĩa và phạm vi áp dụng
Thao tác INSERT được sử dụng để chèn một hàng vào bảng. Hàng mới luôn luôn được thêm vào ở cuối bảng. Con trỏ vẫn ở vị trí của nó.
7.13.2. Sử dụng có điều kiện và an toàn
Lệnh chỉ có thể được thực hiện bởi chủ của bảng hoặc người sử dụng đặc quyền INSERT.
Giá trị cho cột USER - nếu có sẽ được chèn bởi người sử dụng, xem điều 6.7.
7.13.3. Thông điệp lệnh
Hoạt đông SCQL liên quan đến câu lệnh SQL sau đây:
INSERT [INTO]<tên bảng>VALUES(<string>[,<string>...])
<string>::=’<chuỗi các byte>’
Bảng 32 - APDU lệnh thực hiện thao tác SCQL cho INSERT
CLA INS P1 P2 Trường Lc Trường dữ liệu
Trường Le | Xác định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘8C’ = INSERT Độ dài của trường dữ liệu tiếp theo Lp <tên bảng> D, N cố định (các cột) Các mục N: Lp <string> Rỗng |
7.13.4. Thông điệp hồi đáp
Bảng 33 - APDU hồi đáp thực hiện thao tác SCQL cho INSERT
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.13.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 =‘62’với SW2 =
• ‘82’: Kết thúc bảng
- SW 1 = ‘67’ với SW2
• ‘00’: Độ dài sai
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW1 = ‘6A’ với SW2 =
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘84’: Không đủ không gian bộ nhớ
• ‘88’: Không tìm thấy đối tượng tham chiếu
• ‘89’: Đối tượng tồn tại (giá trị cột không phải duy nhất)
7.14. Lệnh UPDATE
7.14.1. Định nghĩa và phạm vi áp dụng
Thao tác UPDATE cập nhật một hay nhiều trường của hàng trong bảng hoặc hiển thị mà con trỏ hướng tới.
7.14.2. Sử dụng có điều kiện và an toàn
Lệnh chỉ có thể được thực hiện bởi chủ của bảng hoặc người sử dụng đặc quyền UPDATE. Con trỏ phải được mở trước đó.
Giá trị cho cột USER - nếu có sẽ được sửa đổi bằng thẻ, xem Điều 6.7.
7.4.13. Thông điệp lệnh
Thao tác SCQL liên quan đến câu lệnh SQL sau đây:
UPDATE SET <thiết lập danh sách điều>
<thiết lập danh sách điều>::=<tên cột>=<string>[,<tên cột>=<string>...]
<string>::=‘<chuỗi các byte>’
Bảng 34 - APDU lệnh thực hiện thao tác SCQL cho UPDATE
CLA INS P1 P2 Trường Lc Trường dữ liệu
Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘8D’ = UPDATE Độ dài của trường dữ liệu tiếp theo D, N cố định (các cột) Các mục N bao gồm 2 thông số: Lp (tên cột) Lp <string> Rỗng |
7.12.4. Thông điệp hồi đáp
Bảng 35 - APDU hồi đáp thực hiện thao tác SCQL cho UPDATE
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.14.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW 1 =‘67’ với SW2=
• ‘00’: Độ dài sai
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
• ‘85’: Các lệnh và hoạt động cần thiết không được thực hiện trước đó (không có con trỏ được xác định)
- SW1 = ‘6A’ với SW2 =
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘84’: Không đủ không gian bộ nhớ
• ‘89’: Đối tượng tồn tại (giá trị cột không phải duy nhất)
7.15. Lệnh DELETE
7.15.1. Định nghĩa và phạm vi áp dụng
Với thao tác DELETE, một hàng trong bảng mà con trỏ hướng tới có thể bị xóa. Con trỏ được di chuyển đến hàng tiếp theo.
7.15.2. Sử dụng có điều kiện và an toàn
Lệnh chỉ có thể được thực hiện bởi chủ của bảng hoặc người sử dụng với đặc quyền DELETE đối với bảng tham chiếu.
7.15.3. Thông điệp lệnh
DELETE
Bảng 36 - APDU lệnh thực hiện thao tác SCQL cho DELETE
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘10’ (=PERFORM SCQL OPERATON) ‘00’, các giá trị RFU khác ‘8E’ = DELETE Rỗng Rỗng Rỗng |
7.15.4. Thông điệp hồi đáp
Bảng 37 - APDU hồi đáp thực hiện thao tác SCQL cho DELETE
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
7.15.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘62’ với SW2 =
• ‘82’: kết thúc bảng
- SW 1 =‘69’ với SW2=
• ‘82’: Trạng thái an ninh không thỏa mãn
• ‘85’: Các lệnh hoặc hoạt động cần thiết không được thực hiện trước đó (không có con trỏ nào được xác định)
8. Quản lý giao dịch
8.1. Khái niệm chung
Trong ngữ cảnh này, giao dịch là quá trình sửa đổi trong cơ sở dữ liệu. Việc sửa đổi có thể là một cập nhật hoặc việc chèn một hoặc nhiều hàng.
Lệnh PERFORM TRANSACTION OPERATION đưa ra các thao tác cần để xác nhận hoặc xóa các giao dịch.
Nếu lệnh này không được sử dụng hoặc không được hỗ trợ thì thao tác SCQL luôn được thực hiện theo nghĩa cam kết, tức là một sửa đổi trở thành có hiệu lực tức thì.
8.2. Thao tác giao dịch
8.2.1. Lệnh BEGIN
8.2.1.1. Định nghĩa và phạm vi áp dụng
Thao tác giao dịch BEGIN định vị không gian cho hình ảnh bộ nhớ, ví dụ: một hàng.
8.2.1.2. Sử dụng có điều kiện và an toàn
Không gian bộ nhớ được cung cấp là một phụ thuộc thực thi. Khuyến cáo rằng đủ không gian bộ nhớ cho phương pháp đệm của ít nhất một hàng được định vị.
8.2.1.3. Thông điệp lệnh
Bảng 38 - APDU lệnh thực hiện thao tác giao dịch cho BEGIN
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘12’ (=PERFORM TRANSACTION) ‘00’, các giá trị RFU khác ‘80’ = BEGIN Rỗng Rỗng Rỗng |
8.2.1.4. Thông điệp hồi đáp
Bảng 39 - APDU hồi đáp thực hiện thao tác giao dịch cho cho BEGIN
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
8.2.1.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘6A’ với SW2 =
• ‘84’: không đủ không gian bộ nhớ
8.2.2. Lệnh COMMIT
8.2.2.1. Định nghĩa và phạm vi áp dụng
Thao tác giao dịch COMMIT kiểm tra tính hợp lệ tất cả các sửa đổi đã tạo từ khi Thao tác giao dịch BEGIN được thực hiện.
8.2.2.2. Sử dụng có điều kiện và an toàn
Thao tác giao dịch BEGIN phải được thực hiện trước.
8.2.2.3. Thông điệp lệnh
Bảng 40 - APDU lệnh thực hiện thao tác giao dịch cho COMMIT
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘12’ (=PERFORM TRANSACTION) ‘00’, các giá trị RFU khác ‘81’ = COMMIT Rỗng Rỗng Rỗng |
8.2.2.4. Thông điệp hồi đáp
Bảng 41 - APDU hồi đáp thực hiện thao tác giao dịch cho cho COMMIT
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
8.2.2.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘85’: các lệnh hoặc các hoạt động cần thiết không được thực hiện trước đó (không có giao dịch BEGIN)
8.2.3. Lệnh ROLLBACK
8.2.3.1. Định nghĩa và phạm vi áp dụng
Thao tác giao dịch ROLLBACK khôi phục ngữ cảnh theo cách trước khi thao tác giao dịch BEGIN được thực hiện.
8.2.3.2. Sử dụng có điều kiện và an toàn
Thao tác giao dịch BEGIN phải được thực hiện trước.
8.2.3.3. Thông điệp lệnh
Bảng 42 - APDU lệnh thực hiện thao tác giao dịch cho ROLLBACK
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘12’ (=PERFORM TRANSACTION) ‘00’, các giá trị RFU khác ‘82’ = ROLLBACK Rỗng Rỗng Rỗng |
8.2.3.4. Thông điệp hồi đáp
Bảng 43 - APDU hồi đáp thực hiện thao tác giao dịch cho cho ROLLBACK
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
8.2.3.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘85’: Các lệnh hoặc thao tác cần thiết không được thực hiện trước đó (không có giao dịch BEGIN)
9. Quản lý người sử dụng
9.1. Khái niệm chung
Quản lý người sử dụng liên quan đến:
- Định danh người sử dụng
- Chứng thực người sử dụng
- Thẩm quyền người sử dụng
- Đăng ký/xóa đăng ký người sử dụng
Đối với việc định danh người sử dụng, một id người sử dụng được dùng có thể có cấu trúc như trong Điều 6.5.
Nếu có yêu cầu cho một dẫn chứng rằng id người sử dụng được gắn với người sử dụng thì thủ tục xác nhận phải được thực hiện. Các cơ chế thích hợp cho việc xác nhận người sử dụng là:
- Cơ chế xác minh mật khẩu
- Cơ chế xác minh sinh trắc học
- Cơ chế mật mã dựa trên thuật toán đối xứng hoặc hệ thống khóa công khai kết hợp với giấy chứng nhận.
Trong giấy chứng nhận id người sử dụng phù hợp với mã định danh người sử dụng.
Giấy phép của người sử dụng đề cập đến các quyền của người sử dụng để thực hiện các thao tác. Trong môi trường SCQL, giấy phép của người sử dụng được kết nối với:
- Hồ sơ người sử dụng (DB_O, DBOO hoặc DBBU),
- Các đặc quyền người sử dụng (xem bảng 18) và
- Vai trò người sử dụng, nhóm người sử dụng (xem điều 6.5, 7.6, 7.7 và 9.2.1).
Đăng ký người sử dụng bao trùm việc đăng ký người sử dụng với id người sử dụng, hồ sơ người sử dụng với các thuộc tính an ninh (xem Điều 6.6). Việc xóa đăng ký người sử dụng được thực hiện bằng cách xóa đăng ký.
Trong điều này, các thao tác về định danh người sử dụng sau dựa trên lệnh PERFORM USER OPERATION được quy định là:
- PRESENT USER
- CREATE USER
- DELETE USER.
Các lệnh và thao tác liên quan đến thủ tục xác nhận không được quy định trong tiêu chuẩn này. Tuy nhiên, khi tạo một người sử dụng với id người sử dụng và hồ sơ người sử dụng, các thuộc tính an ninh có thể được thiết lập bao gồm các DO liên quan đến an ninh thích hợp xác định trong các phần khác của bộ tiêu chuẩn. Các lệnh và thao tác đặc biệt liên quan đến việc xác nhận có thể được tìm thấy trong Điều 7 (xem CREATE VIEW, GRANT và REVOKE).
9.2. Hoạt động liên quan đến người sử dụng
9.2.1. Lệnh PRESENT USER
9.2.1.1. Định nghĩa và phạm vi áp dụng
Thao tác PRESENT USER sẽ kiểm tra việc đăng ký id người sử dụng đã giới thiệu. Id người sử dụng phải được giới thiệu theo các quy ước quy định trong Điều 6.5 hoặc trong DO tên chủ thẻ trong giấy chứng nhận của chủ thẻ. Nếu id người sử dụng được đăng ký trong bảng hệ thống *U, người sử dụng mô tả bởi id người sử dụng được thiết lập như người sử dụng hiện hành.
CHÚ THÍCH Giấy chứng nhận chứa DO tên chủ thẻ có thể thuộc về một chuyên gia hoặc bên cung cấp dịch vụ.
9.2.1.2. Sử dụng có điều kiện và an toàn
Có thể chỉ có một người sử dụng hiện hành tại thời điểm mỗi kênh.
Giống như các lệnh tiếp theo, các lệnh xác nhận có thể theo sau:
- VERIFY hoặc
- GET CHALLENGE và EXTERNAL AUTHENTICATE , xem TCVN 11165-4 (ISO/IEC 7816-4).
9.2.1.3. Thông điệp lệnh
Thao tác PRESENT USER liên quan đến câu lệnh mở rộng của SQL sau đây:
PRESENT USER <id người sử dụng, xem điều 6.5>| <DO chứng nhận chủ thẻ>
< DO chứng nhận chủ thẻ>::=<thẻ ghi ‘7F21’><độ dài><DO tên chủ thẻ><DOs bổ sung>
<DO tên chủ thẻ>::=<thẻ ghi ‘5F20’>
<độ dài><id người sử dụng, xem điều 6.5>
Bảng 44 - APDU lệnh PERFORM USER OPERATION cho PRESENT USER
CLA INS P1 P2 Trường Lc Trường dữ liệu
Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘14’ (=PERFORM USER OPERATION) ‘00’, các giá trị RFU khác ‘80’ = PRESENT USER Độ dài của trường dữ liệu tiếp theo <id người sử dụng, xem điều 6.5> hoặc <DO chứng nhận chủ thẻ, thẻ ghi 7F21, xem TCVN 11167-6 (ISO/IEC 7816-6)> Rỗng |
9.2.1.4. Thông điệp hồi đáp
Bảng 45 - APDU hồi đáp PERFORM USER OPERATION cho PRESENT USER
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
9.2.1.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘6A’ với SW2 =
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘88’: Không tìm thấy đối tượng tham chiếu (id người sử dụng)
9.2.2. Lệnh CREATE USER
9.2.2.1. Định nghĩa và phạm vi áp dụng
Thao tác CREATE USER khởi tạo việc đăng ký người sử dụng, Trong môi trường SCQL một hàng trong bảng mô tả người sử dụng được chèn bằng thẻ.
Nếu việc xác nhận được yêu cầu, khi người sử dụng muốn truy cập cơ sở dữ liệu hoặc các bảng hoặc các hiển thị được bảo vệ thì thông tin liên quan đến việc xác nhận phải được thêm vào (xem 6.6). Trong trường hợp này, thao tác CREATE USER có thể theo sau bởi một lệnh, ví dụ: đối với việc cài đặt một mật khẩu. Đặc tả các lệnh đó nằm ngoài phạm vi của tiêu chuẩn này.
9.2.2.2. Sử dụng có điều kiện và an toàn
Lệnh CREATE USER chỉ có thể được thực hiện bởi người sử dụng với hồ sơ DB_O hoặc DBOO với các quyền hạn mô tả trong Bảng 1. Id người sử dụng phải là duy nhất.
9.2.2.3. Thông điệp lệnh
Thao tác CREATE USER liên quan đến câu lệnh mở rộng của SQL sau đây:
CREATE USER <id người sử dụng> <hồ sơ người sử dụng> [<thuộc tính an ninh>,... ]
<hồ sơ người sử dụng> ::= <chủ nhân đối tượng cơ sở dữ liệu> ½ <người sử dụng cơ sở dữ liệu>
<chủ nhân đối tượng cơ sở dữ liệu> ::= DBOO
<người sử dụng cơ sở dữ liệu> ::= DBBU
<thuộc tính an ninh>::= < DO liên quan đến an ninh, xem điều 6.6>
Bảng 46 - APDU lệnh PERFORM USER OPERATION cho CREATE USER
CLA INS P1 P2 Trường Lc Trường dữ liệu
Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘14’ (=PERFORM USER OPERATION) ‘00’, các giá trị RFU khác ‘81’ = CREATE USER Độ dài của trường dữ liệu tiếp theo Lp<id người sử dụng, xem điều 6.5> Lp<hồ sơ người sử dụng:DBOO hoặc DBBU> Các thông số tùy chọn: Lp<thuộc tính an ninh, xem điều 6.6> Rỗng |
CHÚ THÍCH Người sử dụng với hồ sơ DB_O chỉ có thể được chèn trong bảng mô tả người sử dụng trong suốt giai đoạn cài đặt cơ sở dữ liệu SCQL.
9.2.2.4. Thông điệp hồi đáp
Bảng 47 - APDU hồi đáp PERFORM USER OPERATION cho CREATE USER
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
9.2.2.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: Trạng thái an ninh không thỏa mãn
- SW1 = ‘6A’ với SW2 =
• ‘80’: Các thông số không chính xác trong trường dữ liệu
• ‘89’: Đối tượng (id người sử dụng) tồn tại.
9.2.3. Lệnh DELETE USER
9.2.3.1. Định nghĩa và phạm vi áp dụng
Với thao tác DELETE USER, id người sử dụng có thể bị xóa. Hàng tương ứng trong bảng mô tả người sử dụng bị xóa bỏ.
9.2.3.2. Sử dụng có điều kiện và an toàn
Thao tác DELETE USER chỉ có thể được thực hiện bởi chủ nhân người sử dụng.
Để đảm bảo các đặc quyền về tính nguyên vẹn của cơ sở dữ liệu kết hợp với người sử dụng này được tự động xóa.
CHÚ THÍCH Dấu hoa thị trong id người sử dụng với thao tác DELETE USER (xem điều 6.5) có trong trường hợp này không có ý nghĩa đặc biệt, tức là chỉ có hàng trong *U bị xóa ở đó id người sử dụng giống hệt với id người sử dụng đã đăng ký.
9.2.3.3. Thông điệp lệnh
Hoạt động DELETE USER liên quan đến câu lệnh mở rộng SQL sau đây:
DELETE USER (id người sử dụng)
Bảng 48 - APDU lệnh PERFORM USER OPERATION cho DELETE USER
CLA INS P1 P2 Trường Lc Trường dữ liệu Trường Le | Quy định trong TCVN 11165-4 (ISO/IEC 7816-4) ‘14’ (=PERFORM USER OPERATION) ‘00’, các giá trị RFU khác ‘82’ = DELETE USER Độ dài của trường dữ liệu tiếp theo Lp<id người sử dụng> Rỗng |
CHÚ THÍCH Người sử dụng với hồ sơ DB_O chỉ có thể được chèn trong bảng mô tả người sử dụng trong suốt giai đoạn cài đặt cơ sở dữ liệu SCQL.
9.2.2.4. Thông điệp hồi đáp
Bảng 49 - APDU hồi đáp PERFORM USER OPERATION cho DELETE USER
Trường dữ liệu SW1 - SW2 | Rỗng Các byte trạng thái |
9.2.3.5. Điều kiện trạng thái
Các điều kiện về lỗi cụ thể sau đây có thể xảy ra:
- SW1 = ‘69’ với SW2 =
• ‘82’: trạng thái an ninh không thỏa mãn
- SW1 = ‘6A’ với SW2 =
• ‘80’: các thông số không chính xác trong trường dữ liệu
• ‘88’: không tìm thấy đối tượng tham chiếu (id người sử dụng).
PHỤ LỤC A
(tham khảo)
Sử dụng các thao tác SQCL
Ví dụ tiếp theo chỉ ra việc sử dụng và mã hóa thao tác PRESENT USER và một số thao tác SCQL khi mã hóa kích thước D trên một byte.
Các thuật ngữ viết tắt sau đây được sử dụng:
CH = command header tiêu đề lệnh (=CLA INS P1. P2)
Col = column name tên cột
Coldef = column definition định nghĩa cột
Comp = comparison operator toán tử so sánh
Tab = table name tên bảng
View = view name tên hiển thị
X = hexadecimal cơ số thập lục phân
PRESENT USER ‘COMPANY.DIV.SMITH’
Tiêu đề lệnh | Lc | id người sử dụng |
x00140080 | x11 | COMPANY.DIV.SMITH |
CREATE TABLE FLY (‘DEP’, ‘ARR’, ‘F_NO.U’, ‘TIME’, ‘PRICE’)
Tiêu đề lệnh | Lc | Lp | Tên bảng | N | Lp | Tên cột | Lp | Tên cột | Định nghĩa cột | Lp | Tên cột | Lp | Tên cột |
x00140080 | x11 | x03 | FLY | x05 | x03 | DEP | x03 | ARR | F_NO.U | x04 | TIME | x05 | PRICE |
CHÚ THÍCH F_NO.U có nghĩa là giá trị trong cột F_NO là duy nhất.
CREATE VIEW FLY_A AS SELECT (‘DEP’, ‘ARR’, ‘F_NO’, ‘TIME’) FROM FLY
Tiêu đề lệnh | Lc | Lp | Tên hiển thị | Lp | Tên bảng | N | Lp | Tên cột | Lp | Tên cột | Lp | Tên cột | Lp | Tên cột |
x00100081 | x1D | x05 | FLY_A | x03 | FLY | x04 | x03 | DEP | x03 | ARR | x04 | F_NO | x04 | TIME |
GRANT SELECT ON ‘FLY_A’ TO *
Tiêu đề lệnh | Lc | Lp | Priv | Lp | Tên hiển thị | Lp | id người sử dụng |
x00100085 | x0A | x01 | x42 | x05 | FLY_A | 01 | * |
INSERT INTO ‘FLY’ VALUES (‘FRA’,‘CDG’,‘LH471’,‘0115_10:20’,‘540DM’)
Tiêu đề lệnh | Lc | Lp | Tên bảng | N | Lp | DEP | Lp | ARR | Lp | F_NO | Lp | TIME | Lp | PRICE |
x0010008C | x25 | x03 | FLY | x05 | x03 | FRA | x03 | CDG | x06 | LH4711 | x0A | 0115_10:20 | x05 | 540DM |
DECLARE CURSOR FOR SELECT * FROM ‘FLY’ WHERE ‘ARR’ = ‘CDG’
Tiêu đề lệnh | Lc | Lp | Tên bảng | N | N | Lp | Tên cột | Lp | Tên cột | Toán tử so sánh | Lp | chuỗi |
x00100087 | x10 | x03 | FLY | x00 | x01 | x03 | ARR | x01 | ARR | x3D | x03 | CDG |
CHÚ THÍCH Toán tử so sánh ‘3D’ có nghĩa là ‘bằng với’
MỤC LỤC
Lời nói đầu
1. Phạm vi áp dụng
2. Tài liệu viện dẫn
3. Thuật ngữ và định nghĩa
4. Thuật ngữ viết tắt và ký hiệu
5. Khái niệm cơ sở dữ liệu SCQL
6. Lệnh liên quan đến SCQL
7. Hoạt động của cơ sở dữ liệu
8. Quản lý giao dịch
9. Quản lý người sử dụng
Phụ lục A (tham khảo) Sử dụng các thao tác SQCL
Click Tải về để xem toàn văn Tiêu chuẩn Việt Nam nói trên.