SQL Serverでバックアップから復元後にログインできない

一つの原因として、
復元したデータベースのユーザーと、稼働しているサーバーのログインが、うまくマッピングできなくなる
ことがあります。

これはSSMSのGUIからは対処不可で、ログインからユーザーマッピングしても
「ユーザー、グループ、またはロールは現在のデータベースに既に存在します。」
ということになります。

クエリを作って対応します。

Use [データベース名]
ALTER USER データベースのユーザー WITH LOGIN = ログインのユーザー

SQL Server ユーザー設定 コマンド

/* ログイン一覧 */
SELECT * FROM syslogins;

/* SQL Server 認証を使用する ログインの作成 */
CREATE LOGIN <login name> WITH PASSWORD = '<password>';

/* ユーザー一覧 */
USE <DB name>;
SELECT * FROM sysusers;

/* ログインに基づくユーザーの作成 */
USE <DB name>;
CREATE USER <login name>;

/* 固定サーバーロールにログインを追加する */
ALTER SERVER ROLE <role name> ADD MEMBER <login name> ;

/* 固定データベースロールにユーザーを追加する */
ALTER ROLE <role name> ADD MEMBER <login name> ;


OSXの.NET Core で libgdiplusが見つからないエラー

DllNotFoundException: Unable to load DLL 'libgdiplus'

とか出る場合です。 私自身は、ClosedXMLの実行時に遭遇しました。

libgdiplusは、 Windows標準のDLL(libgdiplus.dll)
OSX環境でも、/usr/local/libなどに、libgdiplus.dylib が入っている。
(今の時点で、monoか、.net core 自体が入れるのか不明だが)

問題はこれを見つけられないことなので、環境変数 LD_LIBRARY_PATH にlibgdiplus.dylibがあるパスを追加する。
.bash_profile に

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

とし、その後

source ./.bash_profile

下記を参照

http://www.mono-project.com/docs/gui/problemgdiplusinit/

Windowsでログインパスワード(ローカル)が不明の場合の対処

  1. MicrosoftのMediaCreationTool.exeをダウンロード
  2. MediaCreationTool.exeで、Windows10の起動DVDを作成
  3. 起動DVDで立ち上げて、セットアップ画面から、Shift+F10でコマンドプロンプト
    cd \windows\system32
    ren utilman.exe utilman.org
    copy cmd.exe utilman.exe
    
  4. 起動DVDを外し、ダイアログの右上の「×」をクリックしてインストールを取り消す
  5. Windowsを再起動
  6. サインイン画面で左下の[コンピューターの簡単操作]アイコンをクリックし、cmd.exeを起動
    net user (ユーザー一覧)
    net user <ユーザー名> <新しいパスワード> (パスワード再設定)
    
  7. 起動DVDで再起動
    cd \windows\system32
    del utilman.exe
    ren utilman.org utilman.exe
    

Macでログインパスワード不明の場合の対処

  1. 起動時にCommand+Rで、macOSユーティリティがたちあがる
  2. メニューのユーティリティ > ターミナルでターミナルがたちあがる
  3. resetpasswordと入力
  4. パスワードを変更する

FileVaultがかかっている場合、上記はできない。パスワードを要求される。

  1. 起動時にCommand+Rで、macOSユーティリティがたちあがる
  2. ディスクユーティリティでHDD消去
  3. ディスクユーティリティでOS再インストール

Docker for Mac & SQL Server 2017 インストール

  1. docker for Macをダウンロード
    www.docker.com
  2. docker for Macをインストール
  3. docker for Macを起動し、メモリ割り当て変更。メモリは 4GBにする。
  4. SQL Server on Linux のイメージを Docker Hub からダウンロード
    docker pull microsoft/mssql-server-linux
    

    ダウンロード元のサイト

  5. コンテナを起動
    docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<*password*>' \
    -p 1433:1433 --name mssql \
    -d microsoft/mssql-server-linux:latest
    
  6. 動作確認
    sudo docker ps
    

    見えないときは ps -a で停止しているコンテナを表示

    docker ps -a
    

    [STATUS] 列が [Up]:正常、[STATUS] 列が [Exited]:エラー

  7. エラー時はログを確認
    docker logs XXXXXXXX
    
  8. ストップと再起動
    docker stop mssql
    docker rm mssql
    
  9. 手動でコンテナをスタート
    docker start **コンテナID** 
    

OSXにHomebrewでRailsをインストールする

(rbenv ruby-buildのインストール) 
brew install ruby-build
brew install rbenv
echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile
source ~/.bash_profile

(rubyのインストール) 
rbenv install -l
rbenv install 2.4.2
rbenv rehash
rbenv global 2.4.2

(powのインストール) 
gem install powder
rbenv rehash
powder install

(railsのインストール) 
gem install bundler
gem install rails
rbenv rehash

cd XXX
bundle exec spring binstub –all

OSXにPostgreSQLをHomebrewでインストールする

brew install postgresql

(自動起動にする)
brew services start postgresql

(止める、自動起動も止まる)
brew services stop postgresql

(コンソールからアクセス)
psql -d postgres

(データベースの作成)
CREATE DATABASE sandbox;

(パスワード付でユーザーの作成)
createuser -P rails_user

(データベースの権限確認)
psql -q -c’select * from pg_user’ sandbox

(rails_userに権限付与)
psql -U mac_user sandbox
sandbox=#\du
sandbox=#ALTER ROLE rails_user WITH Superuser;