Building 500000 times the sql string command is a slow process and it is dangerous too.
You should Google about "SQL bulk insert", there is only 1200000 answers, you should find something useful.
-----
sqlcmd.CommandText = "insert into [RRights]([RoleId],[Database],[Item Type],[Email],[Print],[Design Profile],[Check In],[Design File],[Delete/Rename File],[File Output],[Create Version],[View Version],[Reports],[Management],[ShareFile],[Annotation],[RenameAll]) values ('" & stringRoleID & "',N'" & objDR("Path") & "',N'Folder','False','False','False','False','False','False','False','False','False','False','False','False','False','False')"
Not a solution to your question, but another problem you have.
Never build an SQL query by concatenating strings. Sooner or later, you will do it with user inputs, and this opens door to a vulnerability named "SQL injection", it is dangerous for your database and error prone.
A single quote in a name and your program crash. If a user input a name like "Brian O'Conner" can crash your app, it is an SQL injection vulnerability, and the crash is the least of the problems, a malicious user input and it is promoted to SQL commands with all credentials.
SQL injection - Wikipedia[
^]
SQL Injection[
^]
SQL Injection Attacks by Example[
^]
PHP: SQL Injection - Manual[
^]
SQL Injection Prevention Cheat Sheet - OWASP[
^]