AD构筑MySQL无缝连接,高效办公之余享受快乐(AD显示连接mySQL)
AD构筑MySQL无缝连接,高效办公之余享受快乐!
在当今数字化的时代,高效的数据处理及管理是任何公司或组织追求成功的必经之路。而数据库是构筑高效数据系统的核心要素之一。如今,MySQL数据库已被广泛使用,成为业界一款功能强大的开源数据库。然而,在实际应用中如何更好地利用MySQL数据库仍是一大挑战。本文将介绍如何基于Active Directory和MySQL构筑无缝连接,使得企业的办公无缝更快捷,快乐更便利。
一、什么是AD
AD是Windows操作系统的一项关键技术,用于企业内部的用户身份验证和授权。Active Directory(活动目录)是微软公司开发的一款目录服务软件。Active Directory是建立在LDAP(轻型目录访问协议)之上的,因此可以在网络中使用并管理各种信息,比如用户账户、计算机、服务器、应用等等。Active Directory所提供的自动化资源管理机制使得IT管理员能够更加容易管理整个企业内的系统、网络资源以及相关服务。
二、什么是MySQL
MySQL是一个流行的开源关系型数据库管理系统,因其速度快、易于使用、可扩展、安全性高等特点,被广泛应用于Web应用和许多小规模的软件系统开发中。
三、为什么要构筑AD和MySQL的无缝连接
在企业内部,为了保护数据安全,通常需要使用AD来设置用户帐户、密码等信息。而此时使用MySQL却需要再次输入用户、密码等等重复性的信息,增加了员工的工作负担。因此,构筑AD和MySQL的无缝连接可以实现一次性登录,多处共享数据。另外,使用AD可以方便管理员对企业的设置、控制,减少了人力成本。同时,也可应用单点登录(SSO)技术,使登录过程更加便捷。
四、构筑AD和MySQL的无缝连接
一、安装OpenLDAP Server和MySQL,创建用户并开启LDAP服务
“`bash
sudo apt-get install slapd ldap-utils mysql-server
sudo dpkg-reconfigure slapd
在安装OpenLDAP Server时需要设置admin密码和根DN,此处以“dc=mydomn,dc=com”和密码为“mysecretpassword”为例。
启动LDAP服务:
```bashsudo systemctl start slapd
sudo systemctl enable slapd
创建LDAP用户组:
“`bash
ldapadd -Wx -D “cn=admin,dc=mydomn,dc=com” -f ldap-group.ldif
其中ldap-group.ldif文件的内容如下:
```bashdn: cn=MySQL User Group,ou=groups,dc=mydomn,dc=com
objectClass: groupOfNamescn: MySQL User Group
member: cn=user1,ou=people,dc=mydomn,dc=commember: cn=user2,ou=people,dc=mydomn,dc=com
创建LDAP用户:
“`bash
echo “userPassword: $(slappasswd -s pass)” >> ldap-user.ldif
grep -v “^#” ldap-user.ldif | ldapadd -D cn=admin,dc=mydomn,dc=com -w mysecretpassword
其中ldap-user.ldif文件的内容如下:
```bashdn: cn=user1,ou=people,dc=mydomn,dc=com
objectClass: topobjectClass: posixAccount
objectClass: shadowAccountcn: user1
uid: user1uidNumber: 2000
gidNumber: 2000homeDirectory: /home/user1
loginShell: /bin/bashgecos: user1
shadowLastChange: 0shadowMax: 0
shadowWarning: 0userPassword: password
dn: cn=user2,ou=people,dc=mydomn,dc=comobjectClass: top
objectClass: posixAccountobjectClass: shadowAccount
cn: user2uid: user2
uidNumber: 2001gidNumber: 2000
homeDirectory: /home/user2loginShell: /bin/bash
gecos: user2shadowLastChange: 0
shadowMax: 0shadowWarning: 0
userPassword: password
二、创建MySQL用户,并将其加入MySQL User Group中:
“`bash
mysql -u root -p
CREATE USER ‘user1’@’%’ IDENTIFIED BY ‘password’;
CREATE USER ‘user2’@’%’ IDENTIFIED BY ‘password’;
GRANT SELECT, INSERT, UPDATE, DELETE ON test.* TO ‘user1’@’%’;
GRANT SELECT, INSERT, UPDATE, DELETE ON test.* TO ‘user2’@’%’;
GRANT USAGE ON *.* TO ‘user1’@’%’ IDENTIFIED BY ‘password’;
GRANT USAGE ON *.* TO ‘user2’@’%’ IDENTIFIED BY ‘password’;
INSERT INTO mysql.user (User, Host, Password)
SELECT ‘user1’, ‘%’, authentication_string FROM mysql.user WHERE User = ‘root’ AND Host = ‘%’;
INSERT INTO mysql.user (User, Host, Password)
SELECT ‘user2’, ‘%’, authentication_string FROM mysql.user WHERE User = ‘root’ AND Host = ‘%’;
INSERT INTO mysql.user (User, Host, Password)
SELECT ‘user1’, ‘localhost’, authentication_string FROM mysql.user WHERE User = ‘root’ AND Host = ‘localhost’;
INSERT INTO mysql.user (User, Host, Password)
SELECT ‘user2’, ‘localhost’, authentication_string FROM mysql.user WHERE User = ‘root’ AND Host = ‘localhost’;
FLUSH PRIVILEGES;
三、在php.ini文件中添加LDAP配置信息:
```bashsudo nano /etc/php/7.2/apache2/php.ini
添加以下配置信息:
“`bash
ldap.max_links = -1
ldap.allow_persistent = On
ldap.max_persistent = -1
ldap.max_children = -1
ldap.max_ldap_message = 4096
重启Apache Web服务器:
sudo systemctl restart apache2
四、在PHP脚本中使用LDAP认证并连接MySQL数据库:
```php$ldaprdn = 'cn=user1,ou=people,dc=mydomn,dc=com';
$ldappass = 'password';
$ldapconn = ldap_connect("ldap://localhost") or die("Could not connect to LDAP server.");
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);if (!$ldapbind) {
die("LDAP bind fled...");}
$host = "localhost";$user = "user1";
$password = "password";$database = "test";
if (!mysql_connect($host, $user, $password)) { die("Could not connect to MySQL server.");
}if (!mysql_select_db($database)) {
die("Could not select database.");}
五、使用无缝连接
组织内的员工成员均已加入到MySQL User Group和LDAP User Group中,因此可以从应用程序或Web页面访问MySQL数据库,无需再次输入用户、密码等信息。
总结:
通过以上步骤构筑的AD和MySQL的无缝连接,使得企业内部的数据管理更加高效、便捷。LDAP的威力不仅限于Samba文件共享,它也可以用于MySQL等服务的身份验证。在实际应用中,可以根据企业需求对其进行调整。而这一过程对于使用Linux或类Unix系统的管理员来说是挑战和学习的机会,学习完成后可以扩展到其它应用程序中。