Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

12c DBA_USERS Thay đổi

Hôm nay, tôi đã xem xét khả năng truy vấn thời gian đăng nhập cuối cùng của người dùng. Trước 12c, người ta phải tạo trình kích hoạt đăng nhập để lưu trữ thời gian đăng nhập trong bảng hoặc thiết lập kiểm tra và kiểm tra các lần đăng nhập thành công. Giờ đây, theo mặc định, Oracle 12c bao gồm một cách để xác định lần cuối cùng ai đó đăng nhập.

SQL> show user
USER is "SYS"
SQL> select username,last_login from dba_users
2  where last_login is not null;
USERNAME                       LAST_LOGIN
------------------------------ ----------------------------------------
SYSTEM                         30-JUL-13 01.57.19.000000000 PM -05:00
PEASLAND                       31-JUL-13 02.15.38.000000000 PM -05:00

Như bạn có thể thấy, tôi có hai người dùng đã đăng nhập vào cơ sở dữ liệu và ngày / giờ họ đăng nhập lần cuối. Một điều tôi nhận thấy là mặc dù tôi được kết nối với tư cách là người dùng SYS, cột này không được điền cho SYS.

Trong khi điều tra chế độ xem DBA_USERS, tôi thấy rằng ngoài cột LAST_LOGIN, còn có 3 cột mới khác cho chế độ xem Từ điển Dữ liệu, chỉ một trong số đó tôi đã đọc trước đây, ORACLE_MAINTAINED. Cột ORACLE_MAINTAINED sẽ chỉ ra giá trị Y nếu người dùng được tạo bởi Oracle và các tập lệnh khác nhau của nó. Hiện trong cơ sở dữ liệu thử nghiệm của tôi, tôi chỉ có một người dùng như vậy.

SQL> select username from dba_users where oracle_maintained<>'Y';
USERNAME
------------------------------
PEASLAND
Một cột mới mà tôi chưa từng đọc trước đây là người dùng PROXY_ONLY_CONNECT. Chế độ xem này cho phép bạn xem liệu người dùng có cho phép kết nối proxy hay không. Trong trường hợp bạn không quen với các kết nối proxy, điều này có thể giúp giải thích. Để biết thêm thông tin, hãy truy cập Hướng dẫn Tham chiếu SQL cho ALTER USER và tìm kiếm “proxy_clause”. Cột mới cuối cùng trong DBA_USERS là COMMON. Tôi không biết cột này dùng để làm gì nên điểm dừng đầu tiên của tôi là Hướng dẫn Tham khảo cho DBA_USERS. Mô tả cho cột là "Cho biết liệu một người dùng nhất định có phổ biến hay không". Ok…. Điều đó có nghĩa là gì? Điều gì xác định một người dùng phổ biến? Nếu tôi truy vấn cơ sở dữ liệu thử nghiệm của mình, tôi nhận được kết quả sau:
SQL> select username,common,oracle_maintained from dba_users;
USERNAME                       COM O
------------------------------ --- -
PEASLAND                       NO  N
AUDSYS                         YES Y
GSMUSER                        YES Y
SYSKM                          YES Y
XS$NULL                        YES Y
OJVMSYS                        YES Y
ORACLE_OCM                     YES Y
SYSDG                          YES Y
DIP                            YES Y
SYSBACKUP                      YES Y
GSMCATUSER                     YES Y
GSMADMIN_INTERNAL              YES Y
APPQOSSYS                      YES Y
XDB                            YES Y
WMSYS                          YES Y
DBSNMP                         YES Y
ANONYMOUS                      YES Y
SYS                            YES Y
SYSTEM                         YES Y
OUTLN                          YES Y
Vậy liệu một người dùng “thông thường” có được Oracle duy trì không? Nếu vậy, cột COMMON và ORACLE_MAINTAINED có thừa không? Tôi nghi ngờ rằng Oracle sẽ bao gồm hai cột có nghĩa giống nhau. Vì vậy, tôi đã bắt tay vào tìm kiếm để tìm ra câu trả lời… Trong Hướng dẫn dành cho quản trị viên, có một phần nhỏ có tiêu đề “Người dùng phổ biến và Người dùng cục bộ”. Người dùng chung là một người dùng chung cho cơ sở dữ liệu vùng chứa và tất cả cơ sở dữ liệu có thể cắm thêm hiện tại và trong tương lai trong kiến ​​trúc cơ sở dữ liệu nhiều người thuê mới của Oracle 12c. Điều đó có ý nghĩa ngay bây giờ.
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể tạo mô hình django từ cơ sở dữ liệu không?

  2. Làm cách nào để đếm số từ trong một chuỗi trong Oracle?

  3. Làm thế nào để in 1 đến 10 mà không cần sử dụng vòng lặp trong PL / SQL?

  4. Cách giải quyết ORA-06512 tại số dòng

  5. Cách chọn so sánh hai cột dưới dạng một cột trong Oracle