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服务:

```bash
sudo 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文件的内容如下:

```bash
dn: cn=MySQL User Group,ou=groups,dc=mydomn,dc=com
objectClass: groupOfNames
cn: MySQL User Group
member: cn=user1,ou=people,dc=mydomn,dc=com
member: 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文件的内容如下:

```bash
dn: cn=user1,ou=people,dc=mydomn,dc=com
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
cn: user1
uid: user1
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/user1
loginShell: /bin/bash
gecos: user1
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
userPassword: password
dn: cn=user2,ou=people,dc=mydomn,dc=com
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
cn: user2
uid: user2
uidNumber: 2001
gidNumber: 2000
homeDirectory: /home/user2
loginShell: /bin/bash
gecos: user2
shadowLastChange: 0
shadowMax: 0
shadowWarning: 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配置信息:

```bash
sudo 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系统的管理员来说是挑战和学习的机会,学习完成后可以扩展到其它应用程序中。


数据运维技术 » AD构筑MySQL无缝连接,高效办公之余享受快乐(AD显示连接mySQL)