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

Làm thế nào để sao chép lược đồ với các đặc quyền tương tự của tài khoản hiện có trong oracle?

Trong Oracle SQL Developer, hãy mở phần DBA, Security và Users.

Chọn tài khoản của bạn.

Nhấp chuột phải.

Chọn, tạo lượt thích.

Bật 'Sao chép đối tượng privs'

Cung cấp tên người dùng / mật khẩu mới.

Thì đấy.

Truy cập trang SQL để xem mã mà chúng tôi đã lấy ra từ từ điển dữ liệu cho bạn.

Nó đã nắm lấy hạn ngạch, vai trò, hệ thống và hệ thống riêng.

Trong phiên bản 18.1, bạn cũng có thể chỉ cần mở Người dùng và truy cập trang SQL và sao chép / dán / thay thế tên lược đồ trong mã được cung cấp ở đó.

Chao ôi! (Tôi nghe bạn nói, tôi cần MÃ để làm việc này.)

Bạn có thể xem SQL mà chúng tôi đang sử dụng để lấy thông tin này từ DB, bằng cách mở bảng Nhật ký trong SQL Developer và nhấp vào trang Báo cáo.

Đây là mã đó:

select M.NAME,
       decode(
    NVL(
        S.ADMIN_OPTION,
        'NULL'
    ),
    'NO',
    'YES',
    'NULL',
    'NO',
    'YES'
) GRANTED,
       NVL(
    ADMIN_OPTION,
    'NO'
) ADMIN
  from SYSTEM_PRIVILEGE_MAP M,
       (
    select *
      from DBA_SYS_PRIVS
     where (
        GRANTEE   =?
            or ?         = null
    )
) S
 where S.PRIVILEGE (+)   = M.NAME
 order by 1;

select R.ROLE,
       decode(
    S.NAME,
    R.ROLE,
    'YES',
    'NO'
) GRANTED,
       NVL(
    S.ADMIN,
    'NO'
) ADMIN,
       NVL(
    S.DEF,
    'NO'
) DEF
  from DBA_ROLES R,
       (
    select GRANTED_ROLE NAME,
           ADMIN_OPTION ADMIN,
           DEFAULT_ROLE DEF
      from DBA_ROLE_PRIVS
     where GRANTEE   =?
) S
 where S.NAME (+)   = R.ROLE
   and R.AUTHENTICATION_TYPE != 'GLOBAL'
 order by 1;

select OWNER,
       TABLE_NAME,
       PRIVILEGE,
       GRANTABLE
  from DBA_TAB_PRIVS
 where GRANTEE   =?;

select ACCOUNT_STATUS,
       DEFAULT_TABLESPACE DEF,
       TEMPORARY_TABLESPACE TEMP,
       PASSWORD,
       EXTERNAL_NAME,
       EDITIONS_ENABLED,
       ALL_SHARD
  from DBA_USERS
 where USERNAME   =?;

select T.TABLESPACE_NAME,
       NVL(
    Q.UNLIMITED,
    'NO'
) UNLIMITED,
       Q.QUOTA,
       Q.UNIT,
       T.CONTENTS
  from DBA_TABLESPACES T,
       (
    select TABLESPACE_NAME,
           decode(
        MAX_BYTES,
        -1,
        'YES',
        'NO'
    ) UNLIMITED,
           decode(
        MAX_BYTES,
        -1,
        null,
        MAX_BYTES / 1024
    ) QUOTA,
           'K' UNIT
      from DBA_TS_QUOTAS
     where (
        USERNAME   =:1
            or :1         = null
    )
) Q
 where Q.TABLESPACE_NAME (+)   = T.TABLESPACE_NAME
 order by 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle ghi vào tệp

  2. Devart dotConnect cho Oracle trong Visual Studio 2015 - sự cố tương thích

  3. chuyển đổi sang PROCEDURE pl / sql

  4. Triển khai CAS cho Oracle APEX

  5. Thủ tục ORACLE PL / SQL yêu cầu AUTHID CURRENT_USER để THỰC HIỆN NGAY LẬP TỨC với DDL