DM7表スペース、ユーザー管理

テーブルスペース管理

デフォルトでDamengデータベースの表スペースと役割は何ですか?
V $テーブルスペースdba_tablespaces; v $ huge_tablespace dba_data_files;

SQL> select tablespace_name,status from dba_tablespaces;
  • システム:データディクショナリとグローバルシステムデータ
  • ロール:データベース操作中に生成されたロールバックレコードを格納します。
  • TEMP:一時表スペース
  • メイン:データベースのデフォルトのテーブルスペース。データ・オブジェクトを作成するときに、保管場所を指定しない場合、デフォルトのストレージは表スペースにあります。
  • HMAIN:巨大なテーブルスペース

関連パラメータ:
Undo_retention:単位秒

# 查询所有表空间
SQL> select name from v\$tablespace union select name from v\$huge_tablespace;

計画表スペース

# 案例1:
SQL> create tablespace tbs1 datafile '/dm7/data/DAMENG/tbs1_01.dbf' size 31;
# 报错 大小无效
SQL> create tablespace tbs1 datafile '/dm7/data/DAMENG/tbs1_01.dbf' size 32;

初期ファイルサイズは、ページの4096倍です。4096 * 8K = 32M

# 案例2:创建一个表空间,初始大小50M,最大100M
SQL> create tablespace tbs2 datafile '/dm7/data/DAMENG/tbs2_01.dbf' size 50 autoextend on maxsize 100;

SQL> select tablespace_name,status from dba_tablespaces;
# 案例3:创建一个表空间,初始大小50M,
# 表空间由2个数据文件组成,分别存储在不同磁盘上,每次扩展1m,每个数据文件最大100M.
SQL> create tablespace tb3 datafile '/dm7/data/DAMENG/tbs3_01.dbf' size 50 auto
  extend on next 1 maxsize 100,'/dm7/data/DAMENG/tbs3_02.dbf' size 50 autoextend on next 1 maxsize 100;

テーブルスペースを維持する

表スペースが不足しています。表スペースを維持する方法:

  1. 大きなテーブルスペース、データのエクスポート、インポートを作成します。
  2. データファイルのサイズを変更します。
  3. データファイルを追加します。
SQL> alter tablespace tbs1 add datafile '/dm7/data/DAMENG/tbs1_02.dbf' size 32;

保管場所を変更する

Damengテーブルスペースの状態:

  • 0:---オンライン
  • 1:---オフライン

注:システム、ロール。Tempをオフラインにすることはできません。

# 1、表空间offine
SQL> alter tablespace tb3 offline;

# 2、修改存储位置
SQL> alter tablespace tb3 rename datafile '/dm7/data/DAMENG/tbs3_02.dbf' to '/dm7/data/tbs3_02.dbf';

# 3、表空间online;
SQL> alter tablespace tb3 online;
# 删除表空间
SQL> drop tablespace tbs2;

ユーザー管理

コンセプト

DMデータベースでは、ユーザー管理は主にユーザー、権限、役割の3つの部分で構成されます。

  • 権限:特定のタイプのSQLを実行する権利、または他のモードオブジェクトへのアクセス権。
    • システム権限:データベースオブジェクトの作成、削除、変更など。
    • オブジェクト権限:データベースオブジェクトのデータを操作する権限。
  • 役割:同じ権限を持つユーザーをまとめるこの同じ権限を持つユーザーのグループをロールと呼びます。ロールは権限のコレクションです。権限はさまざまな役割に与えることができます。

データベースの3つの事前定義されたロール:DBA、PUBLIC、RESOUCE

3つの勢力の分離と4つの勢力の分離。

  • 権限の分離:データベース管理者、データセキュリティ担当者、データベース監査人。

  • 4つの権限の分離:データベース管理者、データベースオブジェクトオペレーター、データベースセキュリティ担当者、データベース監査人。

  • デフォルトのアカウント:

    • データベース管理者:sysdba
    • データベースオブジェクトオペレーター:sysdbo:セキュリティバージョンでのみ使用可能
  • データベースセキュリティ担当者:syssso

    • データベース監査人:sysauditor

すべてのアカウントのデフォルトのパスワードは、大文字のユーザー名と一致しています。

SQL> select username from dba_users;

ユーザーの計画

  • 名前:文字の先頭、az、0-9、$#_
  • 場所:対応する表スペース
  • パスワード:パスワードポリシー
    • 0:戦略なし
    • 1:ユーザー名と同じを禁止する
    • 2:パスワードの長さが9以上である
    • 4:少なくとも1つの大文字を含む
    • 8:少なくとも1つの数値を含む
    • 16:少なくとも1つの句読点(スペースと ""を除き、英語で入力)

パスワードは単独または組み合わせて使用​​できます。たとえば、ポリシー1と2が必要な場合は、パスワードポリシーを3に設定します。

ユーザーステートメントのパスワードポリシー句を作成して、パスワードポリシーを指定します。ユーザーパスワードの長さは最大48バイトです。

  • Faild_login_attemps:パスワードのログイン試行回数
  • Password_lock_time:パスワード失敗後のロック時間
  • Password_life_time:パスワードの有効期限。

ユーザービュー:sysuser、all_user、dba_user

ケース1:ユーザーテストを作成します。ユーザーは独自のテーブルを作成し、独自の独立したテーブルスペースを作成できます。ユーザーパスワードの要件は60日ごとに変更されます。

SQL> create tablespace test datafile '/dm7/data/DAMENG/test01.dbf' size 32;
SQL> create user test identified by dameng123 limit password_life_time 60 default tablespace test;
SQL> select * from all_users;
SQL> select user;
SQL> grant create table to test;

ユーザー権限を確認する方法

SQL> select grantee,granted_role from dba_role_privs where grantee='TEST';
SQL> select grantee,privliege from dba_sys_privs where grantee='PUBLIC';

ケース2:ユーザーを計画している場合、ユーザーは60日ごとにパスワードを変更し、パスワードの2回の接続試行は失敗し、アカウントは5分間ロックされ、ユーザーはdmhr.employeeテーブルをクエリできます。

SQL> create user test1 identified by dameng123 limit password_life_time 60,failed_login_attemps 2,password_lock_time 5;

SQL> select username,account_status,lock_date from dba_users;
SQL> alter user test account unlock;
SQL> grant select on dmhr.employee to test1;
SQL> revoke select on dmhr.employee from test1;
SQL> grant select(employee_name,hire_date) on dmhr.employee to test1;
SQL> select employee_name,hire_date from dmhr.employee;

ケース3:企業は、一定の権限を持つ入力担当者のバッチを募集し、市のフォームにのみ入ることができます。

SQL> create user test2 identified by dameng123;
SQL> create role r1;
SQL> grant insert on dmhr.city to r1;
SQL> grant r1 to test2;

# try
SQL> conn test2/dameng123
SQL> insert into dmhr.city values('aa','bbbb',7);
# 没有引用 [REGION] 权限

SQL> grant references any table to test2;
# try
SQL> conn test2/dameng123
SQL> insert into dmhr.city values('aa','bbbb',7);
# succeed
SQL> commit;

ユーザーメンテナンス

# 收回权限:revoke
SQL> revoke r1 from test2;

# 修改用户密码:
SQL> alter user test2 identified by 123456789;

# 锁定用户:
SQL> alter user test2 account lock;

# 解锁用户:
SQL> alter user test2 account unlock;

# 删除用户:
SQL> drop user test2;
SQL> drop user r1;
SQL> drop user test1 cascade;---慎重,最好备份

おすすめ

転載: www.cnblogs.com/Forgenvueory/p/12757980.html