2012年7月31日 星期二

LDAP基本查詢語法

LDAP基本查詢語法


開始工作真的在搞一些有的沒有

而且每個客戶的做法也都不一樣 太有趣了 ="=

先前我們使用的方式是使用帳號密碼 試著登入ldap server如果能登入就是合法的使用者

今天看到某客戶(!!!!)的demo code

事先使用一個類似admin的帳號 可以取得(查詢)所有的user

再連線至LDAP比較密碼 是否相同 (很怪吧!!!)

總之 今天有用到在LDAP的查詢語法 XDD


Ref: http://technet.microsoft.com/zh-tw/library/dd159860.aspx
Ref: http://www.novell.com/documentation/developer/jldap/jldapenu/api/




SQL Server中與Metadata相關的預設table

SQL Server 2000中(之後可以改用VIEW來完成相同的工作)

有一些系統的table來儲放資料的metadata

System Tables in Every Database

  store database-level system information for each database.
syscolumns
Sysindexkeys
syscomments
sysmembers
sysconstraints
sysobjects
sysdepends
syspermissions
sysfilegroups
sysprotects
sysfiles
sysreferences
sysforeignkeys
systypes
sysfulltextcatalogs
sysusers
sysindexes


查詢某TABLE的某COLUMN存不存在


use [DB_NAME]
GO
DECLARE @tb_name VARCHAR(512), @col_name VARCHAR(512)
SET @tb_name = 'TABLE_NAME'
SET @col_name = 'COL_NAME'

IF NOT EXISTS(
SELECT 1
from sys.sysobjects so
INNER JOIN sys.syscolumns sc ON sc.id = so.id
where so.name = @tb_name AND sc.name = @col_name
)
BEGIN
PRINT 'COLUMN ''' + @col_name+ '''  is NOT EXISTS!!'
END
ELSE
BEGIN
PRINT 'COLUMN  ''' + @col_name+ '''  is  EXISTS!!'
END
GO




http://msdn.microsoft.com/en-us/library/aa260604(v=sql.80)

SQL Server中與Metadata相關的預設View

SQL Server 2005, 2008, 2008 R2, 2012
INFORMATION_SCHEMA中有一些預設的system view可以來查詢一些跟資料庫相關的資訊
像是table名稱、column名稱等


CHECK_CONSTRAINTS
REFERENTIAL_CONSTRAINTS
COLUMN_DOMAIN_USAGE
ROUTINES
COLUMN_PRIVILEGES
ROUTINE_COLUMNS
COLUMNS
SCHEMATA
CONSTRAINT_COLUMN_USAGE
TABLE_CONSTRAINTS
CONSTRAINT_TABLE_USAGE
TABLE_PRIVILEGES
DOMAIN_CONSTRAINTS
TABLES
DOMAINS
VIEW_COLUMN_USAGE
KEY_COLUMN_USAGE
VIEW_TABLE_USAGE
PARAMETERS
VIEWS


Ref: http://msdn.microsoft.com/en-us/library/ms186778.aspx