Php 如何在laravel中将SQL Server数据库登录标准用作用户登录
我的客户有一个大型的SQL Server数据库,它存储了20家公司的各种形式的数据。这些公司中的每一家都可以通过他们的数据库登录证书访问数据库的各个部分 为了清楚起见,我没有用户表。但是相反,每个 用户实际上是数据库用户 现在,我正在使用自己的定制MVC,它工作得非常好。像这样:Php 如何在laravel中将SQL Server数据库登录标准用作用户登录,php,sql-server,laravel,Php,Sql Server,Laravel,我的客户有一个大型的SQL Server数据库,它存储了20家公司的各种形式的数据。这些公司中的每一家都可以通过他们的数据库登录证书访问数据库的各个部分 为了清楚起见,我没有用户表。但是相反,每个 用户实际上是数据库用户 现在,我正在使用自己的定制MVC,它工作得非常好。像这样: $user = $_POST['login'] $pass = Hash::create('sha256', $_POST['password'], HASH_PASSWORD_KEY); try {
$user = $_POST['login']
$pass = Hash::create('sha256', $_POST['password'], HASH_PASSWORD_KEY);
try {
$conn = new PDO(DB_TYPE . ':server=' . DB_HOST . ',1433 ;Database=' . DB_NAME, $user, $pass);
$baglantiDurumu = "baglandi";
}
随着这个项目越来越大,我认为是时候切换到Laravel了,这样我就可以从它的功能中获益。但我不知道如何在拉威尔做到这一点
我需要在连接字符串(database.php)中使用此用户/密码,例如:
我认为,单凭这一点还不足以解决我的问题,因为为了使用Laravel的其他功能,如“Auth”
、“Session”
以及与用户登录相关的所有其他类,我需要一个用户数据库。不幸的是我没有
顺便说一下,忘了提到包括我在内的所有用户都只读过privillage。不插入,不更新,只选择
你有什么建议吗,或者我应该回到我以前的MVC吗?试试这个:
config/database.php
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'xxx.xxx.xxx.xxx'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'TestDb-3'),
'username' => '',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
],
public function anyThing(Request $request)
{
config('database.sqlsrv.username', $request->input('db_username'));
config('database.sqlsrv.password', bcrypt($request->input('db_password'));
// Query Builder
$data = DB::connection('sqlsrv')->table('table_name')->get();
// Or Eloquent
$data = TableModel::connection('sqlsrv')->get();
return view('path.to.view')->with(compact('data'));
}
AnyController.php
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'xxx.xxx.xxx.xxx'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'TestDb-3'),
'username' => '',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
],
public function anyThing(Request $request)
{
config('database.sqlsrv.username', $request->input('db_username'));
config('database.sqlsrv.password', bcrypt($request->input('db_password'));
// Query Builder
$data = DB::connection('sqlsrv')->table('table_name')->get();
// Or Eloquent
$data = TableModel::connection('sqlsrv')->get();
return view('path.to.view')->with(compact('data'));
}
为了澄清并在需要时更新我的答案,是否要连接到DB并在同一请求中使用相同的信息登录用户?如果是这样,每个数据库都有一个用户处理它?@MohamedSabil83谢谢你的回答,我会试试看我能做些什么。对于您提出的问题,是的,每个登录实际上都是一个DB连接。我们不存储连接字符串。当用户试图登录系统时,他/她实际上是在给我们连接字符串。但是没有几个数据库。一个有20个用户的数据库。非常感谢。你不慌不忙地回答了,你已经一年没有回答了。但我决定不使用拉威尔。请接受我的道歉,因为我回答得太晚了。