mongodbの基本概念、mongoshellスクリプトのプログラミング、ユーザーアカウントの構成、アクセス制御
3361 ワード
1、Nosql
「sqlだけでなく」、非リレーショナル・データベース・ストレージ構造.次のタイプがあります.ドキュメントストレージデータ構造:mongodb キー/値格納構造:redis 列ストレージ構造:habase 図記憶構造:virtuoso 2、mongodbデータモデル
mongodbは、従来のsqlデータベースのテーブルに相当する、同じまたは類似の用途のドキュメントのセットであるコレクションを使用してデータをグループ化します.
mongodbでは、ドキュメントは単一のエンティティのデータを識別し、セットには1つ以上の関連ドキュメントが含まれます.
mongodbでドキュメントを表すレコードはBSONで、軽量級のバイナリjsonです.
3、計画データモデル文書参照パターン化データ を用いる.
データの正規化とは、ドキュメントとコレクションを整理することによって、冗長性と依存性を最小限に抑えることを意味します.
適用:メインオブジェクトとサブオブジェクトは1対多の関係埋め込みドキュメントを使用してデータを逆パターン化 データの逆パターン化とは、プライマリ・オブジェクト・ドキュメントに直接埋め込むべきサブオブジェクトを特定することです.
適用:プライマリオブジェクトとサブオブジェクトの間には、1対1またはサブオブジェクトが少なく、頻繁に更新されません.
4、mongody shellスクリプトプログラミング(javascriptを使用)
主に以下の3つの方法で実現される.-eval実行JavaScript式 mongodb shellを起動するtestデータベースに接続し、そのデータベースに対してdbを実行するコマンドを入力.getCollections() mongodb shellでload(script_path) を使用
例:mongodb shellを起動した後、入力コマンドmongodb shellを開き、次のように入力します. mongoで実行するJavaScriptファイル を指定
これは最も一般的な方法で、mongodyを起動した後、直接mongoコマンドを使用して実行します.
5、アカウントとアクセス制御の構成ユーザーアカウントの作成(4.4.7バージョン)
割り当て可能なデータロール:read readAnyDatabase readWrite readWriteAnyDatabase dbAdmin dbAdminAnyDatabase
clusterAdmin userAdmin userAdminAnyDatabaseは、ユーザ をリストする.
データベースの下にユーザーのリストを表示し、コマンドを直接入力します.
またはJavaScriptスクリプトファイルを使用します.ユーザ を削除する.ユーザー管理者アカウント を作成
ユーザー管理者アカウントを作成したら、-authを使用してmongodbサーバを再起動します.また、プロファイルでauth構成を指定することもできます.
またはプロファイルmongod_config_auth.txtでauth=trueを設定
mongodb shellでデータベースにアクセスする場合は、認証が必要です.
またはmongodb shellを起動すると認証します.データベース管理者アカウント を作成する
同様に認証します.
「sqlだけでなく」、非リレーショナル・データベース・ストレージ構造.次のタイプがあります.
mongodbは、従来のsqlデータベースのテーブルに相当する、同じまたは類似の用途のドキュメントのセットであるコレクションを使用してデータをグループ化します.
mongodbでは、ドキュメントは単一のエンティティのデータを識別し、セットには1つ以上の関連ドキュメントが含まれます.
mongodbでドキュメントを表すレコードはBSONで、軽量級のバイナリjsonです.
3、計画データモデル
データの正規化とは、ドキュメントとコレクションを整理することによって、冗長性と依存性を最小限に抑えることを意味します.
適用:メインオブジェクトとサブオブジェクトは1対多の関係
適用:プライマリオブジェクトとサブオブジェクトの間には、1対1またはサブオブジェクトが少なく、頻繁に更新されません.
4、mongody shellスクリプトプログラミング(javascriptを使用)
主に以下の3つの方法で実現される.
mongo test -eval "printjson(db.getCollections())"
例:mongodb shellを起動した後、入力コマンドmongodb shellを開き、次のように入力します.
load("E:/code/hour02/shell_script.js")
これは最も一般的な方法で、mongodyを起動した後、直接mongoコマンドを使用して実行します.
mongo shell_script.js
5、アカウントとアクセス制御の構成
mongo = new Mongo("localhost");
db = mongo.getDB("test")
db.createUser({
user:"testAdmin",
pwd:"test",
roles:["dbAdmin"]
});
// testUser admin , read , test readWrite
db = mongo.getDB("admin")
db.createUser
({
user:"testUser",
pwd:"test",
roles:
[
{role:"readWrite",db:"test"},
"read"
]
});
割り当て可能なデータロール:read readAnyDatabase readWrite readWriteAnyDatabase dbAdmin dbAdminAnyDatabase
clusterAdmin userAdmin userAdminAnyDatabase
データベースの下にユーザーのリストを表示し、コマンドを直接入力します.
use admin
show users
またはJavaScriptスクリプトファイルを使用します.
mongo = new Mongo("localhost");
db = mongo.getDB("admin");
cur = db.system.users.find();
printjson(cur.toArray());
use admin
db,removeUser("testAdmin")
use admin
db.createUser({
user:"userAdmin",
pwd:"test",
roles:["userAdminAnyDatabase"]
});
ユーザー管理者アカウントを作成したら、-authを使用してmongodbサーバを再起動します.また、プロファイルでauth構成を指定することもできます.
>mongod -dbpath "E:/Program Files/MongoDB/Server/4.0/data/
db" -auth
またはプロファイルmongod_config_auth.txtでauth=trueを設定
verbose = true
port = 27017
dbpath = E:\Program Files\MongoDB\Server\4.0\data\db\
auth = true
maxConns = 10
mongodb shellでデータベースにアクセスする場合は、認証が必要です.
>use admin
>db,auth("useradmin","test")
またはmongodb shellを起動すると認証します.
mongo -username "useradmin" -password "test"
mongo = new Mongo("localhost");
db = mongo.getDB("admin");
db.createUser({
user:"dbaAdmin",
pwd:"test",
roles:[
"readWriteAnyDatabase",
"dbAdminAnyDatabase",
"clusterAdmin"]
});
同様に認証します.