The given sentence indicates possession of books.
So, the third person singular present auxiliary verb "has" in option B indicates possession or ownership of books. This is incorrect.
"Have" in option A is incorrect as this root verb is used alongside plural nouns.
"Having" is incorrect as it is a gerund/noun used to indicate the present continuous participle. Whereas, the sentence proclaims a general truth. Thus, this is in simple present tense.
"Been" is option D is incorrect as the past participle of the auxiliary verb 'be' is used to indicate existence and not ownership.
Thus, option B is correct.